Описание настроек для Веб-сервера webServer.json

  • disable (true|false) - с помощью этой настройки можно отключить web сервер, например для распределения нагрузки между несколькими экземплярами ALEPIZ. По умолчанию false.
  • httpPort или port - TCP порт для работы HTTP сервера. По умолчанию 80
  • httpsPort - TCP порт для работы HTTPS сервера. По умолчанию 443. Порт может быть задан переменными окружения app_port или PORT. Переменные окружения Имеют приоритет перед настройкой.
  • childrenNumber - количество потоков, которые будут формировать список объектов и действий в зависимости от прав пользователей, настроек действий и установленных фильтров объектов. По умолчанию 20.
  • downloadWebServerMaxSize - Максимальный объем данных, который можно получить с Веб-сервера. К параметру можно добавлять единицы измерения (Kb, Mb, Gb). По умолчанию "100gb".
  • sessionMaxAgeInDays - время жизни сессии для пользователя в днях, после которого пользователю будет предложено повторно ввести свои учетные данные. По умолчанию 7.
  • parameterLimit - максимальное число параметров, которое можно передать серверу при выполнении HTTP запроса. По умолчанию 100000,
  • privatePath - каталог с SSL ключами для сервера HTTPS и файлом для шифрования cookies. По умолчанию private. Если не существует, будет создан при старте сервиса
  • webSecretFile файл JSON, содержащий ключ для шифрования cookies в формате {"cookieSecret":"<ключ>"}. По умолчанию webSecret.json. Файл находится в каталоге, установленном в настройке privatePath. Если при старте сервиса файл отсутствует, он будет создан автоматически.
  • httpsKeyFile - SSL ключ для шифрования пользовательских подключений к HTTPS серверу. По умолчанию key.pem. Файл находится в каталоге, установленном в настройке privatePath.
  • httpsCertFile - SSL сертификат для шифрования пользовательских подключений к HTTPS серверу. По умолчанию cert.pem. Файл находится в каталоге, установленном в настройке privatePath.
  • sessionDB - относительный путь и файл базы банных SQLite, в которой хранятся пользовательские сессии. По умолчанию db/session.db. Расширение .db обязательно.
  • sessionTableName - имя таблицы в базе данных sessionDB, в которой хранятся пользовательские сессии. По умолчанию session.
  • cacheExpirationTime - время в мс сохранения в кэша списка объектов, прав на действия, конфигураций действий и других данных, требуемых для отрисовки системного меню с объектами и действиями. По умолчанию 60000
  • downloadFileRestrictions - настройка разрешений для скачивания файлов действиями. Для скачивания файла в действии необходимо создать HTTP запрос GET /downloadFile/?filename=<полный путь до файла> Содержит массив объектов с разрешениями:
    • description - описание
    • regExp - регулярное выражение, с которым будет сравниваться имя файла для скачивания. Если имя файла соответствует регулярному выражению, проверка на имя файла будет пройдена
    • roles - массив с перечнем ролей пользователей, которым можно скачивать файл
    • maxSize - максимальный размер файла, который можно скачивать. Можно указывать суффиксы Kb, Mb, Gb, Tb. Если не указано, используется глобальная настройка downloadWebServerMaxSize. Если и она не указана, то используется размер в 1Gb
    • fileNameRoles - массив с правилами по которым формируется имя файла для сохранения. Правила в порядке следования в массиве применяются к исходному имени файла. Для изменения имени файла используется функция JavaScript replace(<src>, <dest>). Поиск производится с флагами "ig".
      • src - регулярное выражение с описанием, что нужно заменить в имени файла
      • dest - выражение с описанием на что нужно заменить имя файла.

Пример функции для скачивания файла

Функция должны вызываться по какому-то событию в web интерфейсе. Например, при нажатии на кнопку "Скачать"

function downloadFile (fileName) {
    let hiddenIFrameID = 'hiddenDownloader',
    iframe = document.getElementById(hiddenIFrameID);
    if (iframe === null) {
        iframe = document.createElement('iframe');
        iframe.id = hiddenIFrameID;
        iframe.style.display = 'none';
        document.body.appendChild(iframe);
    }
    iframe.src = '/downloadFile/?filename=' + encodeURIComponent(fileName);
}