Конфигурация appsettings.json
Настройки СУБДSqlClient
json
"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 | Пароль подключения к БД. |
AppPoolSize | Размер пула на уровне приложения (максимальное число одновременно открытых соединений). Отрицательные значения и ноль (по умолчанию) отключают этот пулинг; рекомендуется задавать значение меньше, чем Maximum Pool Size (например, Maximum Pool Size = 350, App Pool Size = 300). |
AppPoolTimeout | Таймаут получения соединения из пула на уровне приложения, в секундах. По умолчанию - 300. |
PoolTransactions | Использовать транзакции для пула соединений драйвера. |
Traced | Трассировать sql-запросы (OpenTelemetry). |
Полезно:
Идентификация инстансаHttpConfiguration
Для сервиса конфигураций.
json
"HttpConfiguration": {
"Enabled": false,
"Key": "web-next-dbadmin/appsettings",
"ReloadOnChange": true,
"HttpClientConfiguration": {
"Address": "http://localhost:5121"
}
},
Наименование | Описание |
---|---|
Enabled | Обязательное поле для включения конфигурации. true - включить; false - выключить. |
Key | Ключ. |
ReloadOnChange | Перезагружать при изменении. |
HttpClientConfiguration | Конфигурация Http-клиента. |
Address | Адрес сервиса конфигурации http (по kestrel порту) |
OpenTelemtry
json
"Tracer": {
"Enabled": false,
"Exporter_comment": "Console|Zipkin|Jaeger",
"Exporter": "Console|Jaeger",
"Jaeger_comment": "Jaeger exporter",
"Jaeger": {
"AgentHost": "localhost",
"AgentPort": 6831
},
"Zipkin_comment": "Zipkin exporter",
"Zipkin": {
"Endpoint": "http://localhost:9411/api/v2/spans"
}
},
Наименование | Описание |
---|---|
Tracer | true - включить; false - выключить. |
Exporter | Используемые экспортеры метрик: - Console - Zipkin - Jaeger . |
Jaeger | Настройки экспорта Jaeger. |
AgentHost | Хост. |
AgentPort | Порт. |
Zipkin | Настройки экспорта Zipkin |
Endpoint | Ip-адрес. |
Сервис-IDMScim
json
"Scim": {
"Enabled": false,
"AuthBasic": "login:password"
},
Наименование | Описание |
---|---|
Enabled | true - включить; false - выключить. |
AuthBasic | Логин:пароль для basic-аутентификации. |
Настройки для фоновых служб очистки SYS-таблицSysCleaner
json
"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 - Дневное расписание с указанием часов работы. |
Настройки автоудаления содержимого TEMPTempCleanerSettings
json
"TempCleanerSettings": {
"Enabled": true,
"Period": "1.00:00:00",
"ObsolescencePeriod": "06:00:00",
"Path": "temp",
"SearchPattern": "*.*",
"SearchOption": "AllDirectories"
},
Наименование | Описание |
---|---|
Enabled | true - включить; false - выключить. |
Period | Периодичность запуска очистки (первый запуск при старте сервиса, далее с периодом Period). Значение 1.00:00:00 равно одному дню |
ObsolescencePeriod | Период устаревания. Если с момента последнего доступа к файлу прошло более ObsolescencePeriod дней, то файл считается неактуальным и удаляется. |
Path | Список каталогов (относительно BaseDirectory) в которых необходимо удалять устаревшие файлы. |
SearchPattern | Шаблон поиска файлов. |
SearchOption | Опции поиска: 0 - TopDirectoryOnly (только текущий каталог),1 - AllDirectories (текущий и все подкаталоги). |
|
Настройки аутентификацииAuthentication
json
"Authentication": {
"AuthenticationMethod": 0,
...
}
Наименование | Описание |
---|---|
AuthenticationMethod | Метод аутентификации: 0 - DBMS (по старому); 1 - BuiltInJwtBearer; 2 - SingleUserJwtBearer; 3 - OpenIdConnect |
Настройки OpenID Connect для КС-IDOpenIdConnect
Для КС ID необходим Scope = [ \"openid\", \"profile\", \"offline_access\" ]
json
"Authentication": {
"AuthenticationMethod": 0,
"OpenIdConnect": {
"Authority": "",
"ClientSecret": "",
"ClientId": "",
"Scope": [ "openid", "profile", "offline_access" ],
"ValidateIssuerName": true,
"RemoteAuthenticationTimeout": "31.00:00:00"
},
...
},
Наименование | Описание |
---|---|
Authority | Адрес сервиса аутентификации. |
ClientSecret | Секрет клиентского приложения (зарегистрированного в КС ID). |
Scope | [ \"openid\", \"profile\", \"offline_access\" ] - список запрашиваемых scope'ов (настраивается при регистрации в КС ID). |
ValidateIssuerName | true (см. примечание п.2). |
Примечание OpenIdConnect для KC-ID
- Обязательные значения "Scope":
["openid", "profile"]
."offline_access"
- желателен к использованию, нужен для получения токена обновления (продление сессии пользователя без автоматического выхода и необходимости выполнения повторного входа). - "ValidateIssuerName" - издатель токена должен соответствовать 1:1 с адресом указанным в секции "Authority" (если в токене будет издатель https://test1.ru:443/ а в "Authority" https://test1.ru/ - это будет считаться ошибкой).
Примечание OpenIdConnect для Альфа-ID
В Альфа-ID scope "offline_access"
не используется.
Настройки встроенного генератора JWTBuiltInJwtBearer
json
"Authentication": {
"AuthenticationMethod": 0,
"BuiltInJwtBearer":{
"SecurityAlgorithm": "HmacSha256",
"SecurityKey": "",
"PrivateKeyPemFile": "",
"PublicKeyPemFile": "",
"TokenLifetimeMinutes": 60
},
...
}
Наименование | Описание |
---|---|
SecurityAlgorithm | Алгоритм шифрования JWT: например, HmacSha256 или RsaSha256. |
SecurityKey | Ключ для симметричного алгоритма. |
PrivateKeyPemFile PublicKeyPemFile | Пути к файлам с ключами в формате PEM для асимметричного алгоритма. |
TokenLifetimeMinutes | Время жизни токена авторизации в минутах. |
Фильтрация IP-адресовSafeListSettings
json
"SafeListSettings_comment": "Фильтрация IP-адресов. SafeListEnabled - включение. Сам список в SafeList",
"SafeListSettings": {
"SafeListEnabled": false,
"SafeList": ""
},
Наименование | Описание |
---|---|
SafeListEnabled | Включение фильтрации IP адресов: true - включить; false - выключить. |
SafeList | Список адресов IPv4 или IPv6, разделённых запятой или точкой с запятой, с которых разрешено подключение. Если необходимо запретить подключение с какого-либо адреса, перед нужным адресом ставят спецсимвол ~ . Если список пуст, то подключение разрешено со всех адресов. Если в списке единственный символ ~, то подключение запрещено со всех адресов. |
Настройка проксиWebProxy
json
"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
json
"NewsService_comment": "Настройки сервиса новостей",
"NewsService": {
"Address": "",
"Timeout": 60
},
Наименование | Описание |
---|---|
Address | Адрес подключения к сервису новостей. |
Timeout | Таймаут подключения. |
Сервис мониторинга ошибокErrorMonitoringService
json
"ErrorMonitoringService": {
"Url": "",
"Token": "",
"Timeout": 60
},
Наименование | Описание |
---|---|
Url | Адрес подключения к сервису мониторинга: https://mon.keysystems.ru/ksmon/ |
Token | Токен, выданный службой сопровождения. |
Timeout | Таймаут подключения. |
Настройка пути для реверс проксиServiceSettings
json
"ServiceSettings": {
"PathBase": ""
}
Наименование | Описание |
---|---|
PathBase | Виртуальный каталог веб-приложения. |
Разрешать сбрасывать парольAllowRecoveryPassword
json
"SystemSettings": {
"AllowRecoveryPassword": "true",
...
}
Запрещенные для входа пользователиdisabledUsersd
json
"SystemSettings": {
"disabledUsers": "",
...
}
Размер пакета в байтах при отправке файла на серверPacketSize_IL
json
"SystemSettings": {
"PacketSize_IL": 262144
...
}
Пользовательский заголовок содержащий IP в Request для схем со шлюзамиCustomClientIPHeader
json
"SystemSettings": {
"CustomClientIPHeader": "",
...
}
Уведомлять о об истечении срока клиентского сертификата (за ... дней)NumDaysWarnBeforeCertEnd
json
"SystemSettings": {
"NumDaysWarnBeforeCertEnd": "",
...
}
Настройки сервиса авторизации (СА)Authorization
json
"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
json
"SystemSettings": {
"AppLocale": "ru-RU",
...
}
Страница админского входаAdmin
Активируется по /?pg=admin.
json
"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 - запрещено. |
Административные ключи
json
"SystemSettings": {
"AppServer": "",
"CacheStorageType": 3,
"SettingsCheckInterval": "600",
"SchemaCheckInterval": "3600",
"ConnectionType": "SignalR",
"debugState": "on",
"ServiceSchemaURL": "",
...
}
Наименование | Описание |
---|---|
AppServer | Сервер приложений. |
CacheStorageType | Тип хранилища кэша. |
SettingsCheckInterval | Интервал обновления настроек документа. |
SchemaCheckInterval | Интервал обновления схемы документ. |
ConnectionType | Тип соединения. |
debugState | Вид отображения ошибок. values=(system/off/on). |