Системные параметры приложения
Описание настроек используемых в файле конфигурации settings.config и в файлах настроки пакетов. Который отвечает за основные параметры приложения.
  
    
    
    aliases - Объект с псевдонимами путей различного характера начиная от страниц обработки ошибок до псевдонимов путей шаблонов. Используется для возможности переопределения базовых шаблонов и для сокращенного набора. При задании псевдонима в программе вначале ставится знак @: fcf.getPath("@controls:button"). 
При переопределении из другого модуля параметр дополняется
    
    
      
        
        Тип: object
        
      
      
      
        
        Пример задания поля aliases:
aliases: {
  "page:page404"            : "fcf:templates/page404.tmpl",
  "page:system-error-page"  : "fcf:templates/system-error-page.tmpl",
  "page:system-page"        : "fcf:templates/system-page.tmpl",
},
        
      
    
  
  
    
    
    avalibleMirrors - Определяет разрешение работоспособности приложения на клиенте, если клиент открывает его на неродном URL сервера.
    
    
      
        
        Тип: bool|array
        
      
      
        
        По умолчанию: true
        
      
      
        
        Если равен true - приложение будет работать в не зависимости от URL.
Если равен false - приложение будет работать только на сервере указанном в параметре site
Если параметр представлен массивом доменных имен, то приложение будет работать только на указанных доменах и сайте указанном в параметре site
        
      
    
  
  
    
    
    cacheDirectory - Путь к директории кэша
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: ":cache"
        
      
      
    
  
  
    
    
    directorySystemProjections - Путь к системным проекциям проекта
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: ":projections/fcfsystem"
        
      
      
    
  
  
    
    
    filters - Объект связывающий тип данных FSQL с фильтром обработчиком поля. Ключом выступает тип данных, а значением путь к модуль обработчика типа данных (фильтр)
При переопределении из другого модуля параметр дополняется
    
    
      
        
        Тип: object
        
      
      
      
        
        Пример:
  filters: {
    "enum":         "fcf:NFSQL/NFilter/Enum.js",
    "int":          "fcf:NFSQL/NFilter/Int.js",
    "bigint":       "fcf:NFSQL/NFilter/BigInt.js",
    "float":        "fcf:NFSQL/NFilter/Float.js",
    "boolean":      "fcf:NFSQL/NFilter/Boolean.js",
    "string":       "fcf:NFSQL/NFilter/String.js",
    "text":         "fcf:NFSQL/NFilter/Text.js",
    "password":     "fcf:NFSQL/NFilter/Password.js",
    "datetime":     "fcf:NFSQL/NFilter/Datetime.js", 
    "file":         "fcf:NFSQL/NFilter/File.js",
  },
        
      
    
  
  
    
    
    friendlySite - Дружественное имя сайта
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: "FCF"
        
      
      
    
  
  
    
    
    html - Конфигурационный объект HTML страницы. Содержит объект поле "include", элементы которого (значения) включаются в каждую страницу проекта.
Пример:
{
  html: {
    include: {
       "jquery.js": "path_to_js",
       "jquery.css": "path_to_css",
    }
  }
}
    
    
      
        
        Тип: object
        
      
      
      
    
  
  
    
    
    lifetimeNotInitializedUser - Время жизни учетной записи без подтверждения регистрации. Если параметр равен нулю ограничение не применяется.
    
    
      
        
        Тип: int/day
        
      
      
        
        По умолчанию: 7
        
      
      
    
  
  
    
    
    logFile - Префикс пути файла лога. Для формирования реального пути файла еще добавляется дата и расширение ".log"
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: "log/node-log-"
        
      
      
    
  
  
    
    
    loginUncreatedUser - Если равен true аутентификация пользователя без подтверждения по e-mail  разрешается
    
    
      
        
        Тип: bool
        
      
      
        
        По умолчанию: false
        
      
      
    
  
  
    
    
    logLifeTime - Время жизни файла лога
    
    
      
        
        Тип: int
        
      
      
        
        По умолчанию: 30
        
      
      
    
  
  
    
    
    mailAddress - Адрес почтового ящика отправленных сообщений
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: "mail@gmail.com"
        
      
      
    
  
  
    
    
    mailPassword - Пароль пользователя почтового клиента
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: "password"
        
      
      
    
  
  
    
    
    mailService - Адрес почтового сервера для отправки почты
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: "smtp.gmail.com"
        
      
      
    
  
  
    
    
    mailUser - Имя пользователя почтового клиента
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: "user"
        
      
      
    
  
  
    
    
    maxReqursionRender - [Доступно с версии 1.1.44] Определяет ограничение количества вложенных шаблонов при рендеринге.
    
    
      
        
        Тип: integer
        
      
      
        
        По умолчанию: 100
        
      
      
    
  
  
    
    
    maxSizeReceived - Максимальный размер тела запроса которое задает параметр limit в BodyParser
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: 100mb
        
      
      
    
  
  
    
    
    maxUrlCountParametersReceived - Максимальный размер URL параметров которое задает параметр parameterLimit в BodyParser
    
    
      
        
        Тип: int
        
      
      
        
        По умолчанию: 1000
        
      
      
    
  
  
    
    
    nodeDependencies - Перечень зависимостей NODEJS модулей
    
    
      
        
        Тип: object
        
      
      
      
        
        
Объект имеет следующий формат. В качестве ключа выступает имя пакета. Значение является пустым объектом или объектом со свойством version.
Значение свойства version может начинаться с ограничения (иметь префикс) ">=", ">", "<=", "<" или иметь конкретное значение версии. Если поле не задано NPM выберет версию на свое усмотрение.
Пример:
...
  nodeDependencies:{
    "match-all": {},
    "express": { version: "4.16.2"},
    "mysql2": { version: ">=2.2.3" },
 }
...
        
      
    
  
  
    
    
    numberInvalidLoginAttemptsBeforeWaiting - Количество неудачных попыток ввода пароль для пользователя, после чего вход для пользователя блокируется на время указанное в параметре waitingLogin
    
    
      
        
        Тип: int
        
      
      
        
        По умолчанию: 3
        
      
      
    
  
  
    
    
    projectionDirectories - Массив с путями директорий проекций подгружаемых в проект. При переопределении данного параметра из приложения или другого модуля содержимое массива дополняется.
    
    
      
        
        Тип: [string]
        
      
      
        
        По умолчанию: ["fcf:projections"]
        
      
      
    
  
  
    
    
    routes - Массив связывающий элементы путей с контроллерами.
    
    
      
        
        Тип: array
        
      
      
      
        
        
routes - массив объектов описывающих URL маршруты приложения. Элемент массива конфигурируется  двумя обязательными полями "uri", "controller" и необязательным полем "childs", остальные свойства передаются в контроллер, как параметры.
  uri - URI путь приложения. Может иметь три формата:
  
    
    Полный - полное соответствие указанному пути.
    
    
    Параметризованный - Отдельные разделы пути заменяются аргументом ${ARG_NAME}, который при обработке помещается в аргументы роутера
    
       
         Пример:
       
       
          "/pages/${name}"
       
    
    
      Все вложенные - для этого используется символ *. Для объявления "/page/*" будут соответствовать все пути начинающиеся с "/page/"
        
  
  
  controller - Путь к контроллеру обрабатывающий заданный URL
  
  
  childs - Массив объектов описателей вложенных путей.
  
  Пример на два адреса "/main" и "/main/news":
  
      {
        uri:      "/main",
        controller: "fcf:NServer/NControllers/Page.js",
        source:     "templates/main.tmpl",
        childs: [
          {
            uri:      "news",
            controller: "fcf:NServer/NControllers/Page.js",
            source:     "templates/news.tmpl",        
          }
        ],
      },
  
  
  
        
      
    
  
  
    
    
    sessionLifetime - Время жизни сессии клиента. Если параметр равен нулю ограничение не применяется.
    
    
      
        
        Тип: int/day
        
      
      
        
        По умолчанию: 30
        
      
      
    
  
  
    
    
    site - Наименование сайта
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: "http://localhost"
        
      
      
    
  
  
    
    
    systemVariables - Объект с описанием системных переменных. В качестве ключа выступает путь системной переменной [PACKAGE]:[VARIABLE_NMAE]. А в качестве значения выступает объект с описанием .
    
    
      
        
        Тип: object
        
      
      
      
        
        Пример объявления  системной переменной в файле fcf:package.config:
{
...
  systemVariables: {
    "fcf:packageVersions": { value: {fcf: "0.0.0"}, description: "Package versions", }
  },
...
}
        
      
    
  
  
    
    
    userProjectionName - Проекция в которой хранится информация о пользователях
    
    
      
        
        Тип: string
        
      
      
        
        По умолчанию: "___fcf___users"
        
      
      
    
  
  
    
    
    view - Объект с правилами выбора шаблона отображения для типа данный FSQL. 
При переопределении из другого модуля параметр дополняется
    
    
      
        
        Тип: object
        
      
      
      
        
        
Объект имеет следующую структуру:
{
  MODE: {
    FSQL_TYPE1: TEMPLATE1,
    FSQL_TYPE2: TEMPLATE2
  }
}
MODE -  Формат многоуровневого задания режима вывода. Режимы первого уровня: add, edit, read. Режимы второго уровня: add.full, edit.short, read.full. Для указания соответствия всех вложенных режимов используется символ *. Так для записи "add.*"  будут соответствовать комбинации "add" и "add.full"
FSQL_TYPE1 - Тип FSQL
TEMPLATE1 - Шаблон или alias для отображения данных в соответствующем режиме
Пример:
views: {
  "read.*": {
    "boolean":      "@controls:boolean",
    "datetime":     "@controls:datetime",
    "enum":         "@controls:enum-item",
    "file":         "@controls:file",
    "float":        "@controls:text",
    "int":          "@controls:text",
    "link":         "@controls:link",
    "string":       "@controls:text",
  },
  "read.short": {
  },
  "read.full": {
    "externalRef":  "@controls:externalRef",
  },
  "edit.*": {
    "boolean":      "@controls:checkbox",
    "datetime":     "@controls:datetime-edit",
    "enum":         "@controls:select",
    "file":         "@controls:file-edit",
    "float":        "@controls:float-edit",
    "int":          "@controls:int-edit",
    "password":     "@controls:password",
    "string":       "@controls:text-edit",
    "text":         "@controls:textarea",
  },
  "edit.full": {
  },
  "add.*": {
    "boolean":      "@controls:checkbox",
    "datetime":     "@controls:datetime-edit",
    "enum":         "@controls:select",
    "file":         "@controls:file-edit",
    "float":        "@controls:float-edit",
    "int":          "@controls:int-edit",
    "password":     "@controls:password",
    "string":       "@controls:text-edit",
    "text":         "@controls:textarea",
  },
  "add.full": {
  },
},
        
      
    
  
  
    
    
    waitingLogin - Время на которое блокируется вход для пользователя после неудачных попыток входа
    
    
      
        
        Тип: int/seconds
        
      
      
        
        По умолчанию: 60