appsettings.json

Шаблон

{
  "Version": "1.0",
  "Serilog": {
    "MinimumLevel": "Warning",
    "WriteTo": [
      {
        "Name": "Async",
        "Args": {
          "configure": [
            {
              "Name": "RollingFile",
              "Args": {
                "pathFormat": "%CONTENT_ROOT%\\Logs\\log-{Date}.txt",
                "fileSizeLimitBytes": null,
                "retainedFileCountLimit": null,
                "outputTemplate": "{Timestamp:o} [{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}) {Message}{NewLine}{Exception}{NewLine}",
                "buffered": false
              }
            },
            {
              "Name": "LiterateConsole",
              "Args": {
                "outputTemplate": "{Timestamp:o} [{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}) {Message}{NewLine}{Exception}{NewLine}"
              }
            },
            { "Name": "Debug" },
            {
              "Name": "EventLog",
              "Args": {
                "logName": "Workflow Technology",
                "source": "Workflow Engine",
                "outputTemplate": "{Timestamp:o}{NewLine}[{Level:u3}] {SourceContext} ({RequestId}/{ThreadId}){NewLine}{Message}{NewLine}{Exception}{NewLine}"
              }
            }
          ]
        }
      }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId", "WithRequestId" ]
  },
  "Database": {
    "ServerAddress": "localhost",
    "ServerPort": "5432",
    "User": "postgres",
    "Password": "postgres",
    "Database": "template_project"
  },
  "Storages": {
    "Default": {
      "Path": "Upload",
      "Format": "yyyy\\\\MM\\\\dd"
    }
  },
  "FormsFolder": "C:\\WorkflowSystems\\Projects",
  "BinaryPath": "C:\\WorkflowSystems\\Distr\\WorkflowForms",
  "TempUpdateDir": "C:\\WorkflowSystems\\TempUpdateTest",
  "WebFormsFolder": "",
  "WebBinaryPath": "",
  "WorkflowWebServiceName": "",
  "MobileFormsFolder": "C:\\WorkflowSystems\\Projects",
  "MobileBinaryPath": "D:\\WorkflowEngine\\_Template.v3 (mobile)\\MobileBin",
  "WorkflowServer": {
    "ServerUrl": "http://ws00:7070",
    "WorkflowEngineUpdateService": {
      "Name": "WorkflowEngineUpdateService",
      "Port": 9090
    },
    "HelpDesk": {
      "Enabled": false
    },
    "Update": {
      "Enabled": false
    }
  },
  "SchedulerLog":  "False",
  "SystemLocale": "ru-RU",
  "LogLocale":  "ru-RU",
  "BackupCloudPath": "",
  "BackupCloudInterval": {
    "Start": "01:00",
    "Finish": "05:00"
  },
  "DebugMode": "False",
  "DebugPath": "D:\DebugDC",
  "PerformanceChecking": {
    "Enabled": "False",
    "Delayed": "True",
    "RamThreshold": 2048
  },
  "TimeZone": {
    "TimeZone": "Asia/Yekaterinburg"
  },
  "Kestrel": {
    "EndpointDefaults": {
      "Protocols": "Http1"
    },
    "Certificates": {
      "Default": {
        "Path": "D:\\WorkflowEngine\\Tachki.v3\\certificate-https.pfx",
        "Password": "niBCev&n2FNA#clw"
      }
    }
  }
}

Настройки сервера

TimeZone

Задает временную зону сервера, в которой будут храниться в базе данных все даты со временем.

Необязательное поле. Ожидается название временной зоны в формате IANAarrow-up-right.

Значение по умолчанию: "Etc/GMT"

SystemLocale

Задает код культуры, который определяет язык системных сообщений, отображаемых в программе.

Необязательное поле. Ожидается одно из допустимых значение:

en-US

английский (США)

ru-RU

русский (Россия)

Значение по умолчанию: "en-US"

Настройки подключения к базе данных

Обязательное поле Database зачастую содержит основные поля для доступа к базе данных:

  • Database - имя базы данных;

  • ServerPort - порт сервера базы данных;

  • Password - пароль для доступа к серверу базы данных.

Поле ServerAddress не указывается, так как служба Engine и сервер СУБД чаще всего находятся на одном компьютере. Для остальных полей достаточно значений по умолчанию.

ServerAddress

IP-адрес или доменное имя компьютера, на котором развернута база данных.

Необязательное поле. Любое значение будет переведено в текстовое.

Значение по умолчанию: "localhost"

ServerPort

Порт компьютера, который слушает сервер базы данных.

Необязательное поле. Любое значение будет переведено в текстовое.

Значение по умолчанию: "5432"

User

Имя пользователя, имеющего доступ к серверу СУБД, под которым служба Engine будет обращаться к базе данных.

circle-info

При установке PostgreSQL суперпользователь с именем postgres создается по умолчанию.

Необязательное поле. Любое значение будет переведено в текстовое.

Значение по умолчанию: "postgres"

Password

Пароль пользователя, имеющего доступ к серверу СУБД, под которым служба Engine будет обращаться к базе данных.

circle-info

При установке PostgreSQL пароль для суперпользователь postgres задается вручную и может отличаться.

Необязательное поле. Любое значение будет переведено в текстовое.

Значение по умолчанию: "postgres"

Database

Имя базы данных, с которой будет взаимодействовать служба Engine.

Обязательное поле. Любое значение будет переведено в текстовое.

Пути до папок клиентских частей

FormsFolder

Путь до папки, в которой лежат xml-файлы desktop-версии WT-приложения. Если в файле конфигурации desktop-клиента настройка UseSourceCachearrow-up-right имеет значение True, то сервер будет отдавать на клиентскую машину xml-файлы из этой папки.

Необязательное поле. Ожидается абсолютный путь до папки.

Значение по умолчанию: отсутствует

BinaryPath

Абсолютный путь до папки, в которой лежат бинарные файлы desktop-версии WT-приложения. Если в файле конфигурации desktop-клиента настройка CheckBinaryFilesarrow-up-right имеет значение True, то сервер будет отдавать на клиентскую машину бинарные файлы из этой папки.

Необязательное поле. Ожидается абсолютный путь до папки.

Значение по умолчанию: отсутствует

TempUpdateDir

Абсолютный путь до папки временных файлов обновления. Так же в папке хранятся файлы, которые позволяют откатиться к ним, т.е. предоставляют возможность восстановить старую версию программы и базы данных.

Необязательное поле. Ожидается абсолютный путь до папки.

Значение по умолчанию: отсутствует

WebFormsFolder

Путь до папки, в которой лежат xml-файлы web-версии WT-приложения.

Необязательное поле. Ожидается абсолютный путь до папки.

Значение по умолчанию: отсутствует

WebBinaryPath

Абсолютный путь до папки, в которой лежат бинарные файлы web-версии WT-приложения.

Необязательное поле. Ожидается абсолютный путь до папки.

Значение по умолчанию: отсутствует

MobileFormsFolder

Путь до папки, в которой лежат xml-файлы mobile-версии WT-приложения.

Необязательное поле. Ожидается абсолютный путь до папки.

Значение по умолчанию: отсутствует

MobileBinaryPath

Абсолютный путь до папки, в которой лежат бинарные файлы mobile-версии WT-приложения.

Необязательное поле. Ожидается абсолютный путь до папки.

Значение по умолчанию: отсутствует

Настройки файловых хранилищ

Storages

Поле содержит массив объектов, описывающих настройки файловых хранилищ.

Имя вложенного объекта (элемента массива) определяет ключ, по которому можно обратиться к хранилищу в тэге Storagearrow-up-right команды UploadFileCommandarrow-up-right.

circle-info

Хранилище Default существует в платформе по умолчанию. Указывая его в поле Storages, можно переопределить путь до его корневой папки и/или структуру вложенных папок.

Path

Путь до корневой папки хранилища.

Обязательное поле. Ожидается абсолютный путь или относительный путь, относительно корневой папки службы Engine.

Format

Задает структуру вложенных папок.

Необязательное поле. Если не указано, то файлы будут сохраняться в корневую папку хранилища.

Службы WorkflowServer

Поле WorkflowServer содержит настройки для системы лицензированияarrow-up-right, службы обновленияarrow-up-right и HelpDeskarrow-up-right.

ServerUrl

Задает IP-адрес и порт сервера службы лицензированияarrow-up-right.

Обязательное поле.

WorkflowEngineUpdateService

Настройки службы обновления серверной части WT-программы: имя службы и порт, на котором будет запускаться служба. Служба всегда запускается на localhost для повышения вероятности запуска службы.

HelpDesk

Признак, включающий возможность отправлять обращения в сервис HelpDeskarrow-up-right.

Необязательное поле. Для вложенного поля Enabled ожидается логическое значение.

Значение по умолчанию: false

Update

Признак, включающий возможность взаимодействия со службой обновленияarrow-up-right.

Необязательное поле. Для вложенного поля Enabled ожидается логическое значение.

Значение по умолчанию: false

Резервное копирование

BackupCloudPath

Задает адрес облачного хранилища, в которое будет происходить резервное копирование.

Необязательное поле.

Значение по умолчанию: отсутствует

BackupCloudInterval

Задает интервал времени, каждый день в течение которого будет производиться резервное копирование. Время начала и окончания периода резервирования задается с точностью до минуты.

Необязательное поле.

Значение по умолчанию: "01:00" и "05:00"

Настройки логирования

LogLocale

Задает код культуры, который определяет язык сообщений об ошибке публикуемых в журнале событий Windows.

Необязательное поле. Ожидается одно из допустимых значение:

en-US

английский (США)

ru-RU

русский (Россия)

Значение по умолчанию: "en-US"

SchedulerLog

Признак, включающий логирование работы планировщика задач, встроенного в платформу. Пишутся метки начала и окончания выполнения задач.

Необязательное поле. Ожидается логическое значение.

Значение по умолчанию: false

Serilog

Настройка логирования. Подробнее на github.comarrow-up-right.

%CONTENT_ROOT% - системная переменная указывающая на папку с сервером.

Отладка

В режиме отладки сервер пишет в файлы информацию:

  • время начала и время окончания выполнения запроса к базе данных;

  • время начала и время окончания обработки запроса от клиентской части.

Для работы с логами отладки используется дополнительная утилита - WorkflowVisualizer.

DebugMode

Признак, включающий на сервере режим отладки.

Необязательное поле. Ожидается логическое значение.

Значение по умолчанию: False

DebugPath

Путь до папки, в которую будут сохраняться файлы логов клиентской части.

Необязательное поле. Ожидается абсолютный путь.

Значение по умолчанию: "D:\\DebugDC"

PerformanceChecking

Задает настройки проверки производительности: служба Engine каждый час выполняют проверку, насколько загружена оперативная память.

Необязательное поле.

Enabled

Признак, включающий проверку производительности.

Необязательное поле. Ожидается логическое значение.

Значение по умолчанию: false

Delayed

Признак, включающий задержку в 5 минут при старте проверки производительности.

Необязательное поле. Ожидается логическое значение.

Значение по умолчанию: true

RamThreshold

Задает ограничение по объему используемой оперативной памяти (в МБ).

Необязательное поле. Ожидается целочисленное положительное значение.

Значение по умолчанию: 2048

Условия выполнения проверки:

  1. Проверка запускается через 5 минут после старта сервера;

  2. Если зафиксировано превышение, то далее проверки выполняются каждую минуту. Если зафиксировано 15 превышений подряд, то запускается логирование;

  3. Если превышения нет, то следующая проверка выполнится через час.

Логи пишутся в папку C:\ProgramData\Workflow Systems в файлы:

  • PerformanceHighUsage.txt - значение проверки;

  • PerformanceHighUsage_YYYY-MM-DD-HH24.txt - записывается время начала и окончания всех операций и действий на форме.

Настройки HTTPS

Web-сервер Kestrel поддерживает защиту конечных точек с помощью HTTPS. Для повышения безопасности передаваемых между клиентом и сервером данных, протокол HTTPS предусматривает их шифрование с помощью протокола TLSarrow-up-right.

Для HTTPS требуется сертификат TLS, который должен хранится на сервере и быть явно настроен.

Подробнее про настройку HTTPS можно прочитать в статьеarrow-up-right.

Protocols

Задает версию протокола HTTP.

Доступные значения описаны в разделе Настройка протоколов HTTParrow-up-right официальной статьи от Microsoft.

Path

Задается абсолютный путь до файла сертификата TLS.

Password

Задается пароль для доступа к данным сертификата TLS.

Last updated