Application system parameters
Description of the settings used in the settings.config configuration file and in the package configuration files. Which is responsible for the main parameters of the application.
aliases - An object with path aliases of various types, ranging from error-handling pages to template path aliases. Used for the ability to override basic templates and for a reduced set. When you specify an alias in the program, first put the sign @: fcf.getPath("@controls:button").
When overridden from another module, the parameter is supplemented
Type: object
Example of setting a field 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 - Determines the health permission of the application on the client if the client opens it on a non-native server URL.
Type: bool|array
Default: true
If true, the application will work regardless of the URL.
If false, the application will only run on the server specified in the site parameter.
If the parameter is represented by an array of domain names, the application will only work on the specified domains and the site specified in the site parameter
cacheDirectory - Path to the cache directory
Type: string
Default: ":cache"
directorySystemProjections - Path to the project's system projections
Type: string
Default: ":projections/fcfsystem"
filters - An object that binds the FSQL data type to the field handler filter. The key is the data type, and the value is the path to the module of the data type handler (filter)
When overridden from another module, the parameter is supplemented
Type: object
Example:
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 - Friendly site name
Type: string
Default: "FCF"
html - The configuration object of the HTML page. Contains the "include" field object, whose elements (values) are included in each page of the project.
Example:
{
html: {
include: {
"jquery.js": "path_to_js",
"jquery.css": "path_to_css",
}
}
}
Type: object
lifetimeNotInitializedUser - The lifetime of the account without confirmation of registration. If the parameter is set to zero, the restriction is not applied.
Type: int/day
Default: 7
logFile - The path prefix of the log file. To form the real path of the file, the date and the extension ".log " are also added"
Type: string
Default: "log/node-log-"
loginUncreatedUser - If true, user authentication without confirmation by e-mail is allowed
Type: bool
Default: false
logLifeTime - Log file lifetime
Type: int
Default: 30
mailAddress - The address of the mailbox of the sent messages
Type: string
Default: "mail@gmail.com"
mailPassword - Email Client user password
Type: string
Default: "password"
mailService - The address of the mail server to send mail to
Type: string
Default: "smtp.gmail.com"
mailUser - Email Client user name
Type: string
Default: "user"
maxReqursionRender - [Available since version 1.1.44] Determines the limitation on the number of nested templates when rendering.
Type: integer
Default: 100
maxSizeReceived - The maximum size of the request body that is set by the limit parameter in bodyParser
Type: string
Default: 100mb
maxUrlCountParametersReceived - The maximum size of the parameters URL that is set by the parametersLimit parameter in bodyParser
Type: int
Default: 1000
nodeDependencies - List of NODEJS module dependencies
Type: object
The object has the following format. The key is the package name. The value is an empty object or an object with the version property.
The value of the version property can start with a constraint (have a prefix) ">=", ">", "<=", "<" or have a specific version value. If the field is not specified, NPM will choose the version at its discretion.
Example:
...
nodeDependencies:{
"match-all": {},
"express": { version: "4.16.2"},
"mysql2": { version: ">=2.2.3" },
}
...
numberInvalidLoginAttemptsBeforeWaiting - The number of failed attempts to enter the password for the user, after which the user's login is blocked for the time specified in the waitingLogin parameter
Type: int
Default: 3
projectionDirectories - An array with the paths of the projection directories loaded into the project. When you redefine this parameter from an application or another module, the contents of the array are expanded.
Type: [string]
Default: ["fcf:projections"]
routes - An array that binds path elements to controllers.
Type: array
routes - array of objects describing the URL routes of the application. The array element is configured with two mandatory fields "uri", "controller" and an optional field "childs", the remaining properties are passed to the controller as parameters.
uri - URI path of the application. It can have three formats:
Full -full match to the specified path.
Parameterized - Separate sections of the path are replaced with the argument ${ARG_NAME}, which is placed in the router arguments during processing
Example:
"/pages/${name}"
All nested - to do this, use the * symbol. For the "/page/*" declaration, all paths starting with "/page/" will match
controller - The path to the controller that processes the specified URL
childs - Array of nested path descriptor objects.
Example for two addresses "/main" and " /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 - The lifetime of the client session. If the parameter is set to zero, the restriction is not applied.
Type: int/day
Default: 30
site - Name of the site
Type: string
Default: "http://localhost"
systemVariables - An object with a description of system variables. The key is the path of the system variable [PACKAGE]:[VARIABLE_NMAE]. And the value is an object with a description .
Type: object
Example of declaring a system variable in the fcf:package.config file:
{
...
systemVariables: {
"fcf:packageVersions": { value: {fcf: "0.0.0"}, description: "Package versions", }
},
...
}
userProjectionName - A projection that stores information about users
Type: string
Default: "___fcf___users"
view - An object with the rules for selecting a display template for the given FSQL type.
When overridden from another module, the parameter is supplemented
Type: object
The object has the following structure:
{
MODE: {
FSQL_TYPE1: TEMPLATE1,
FSQL_TYPE2: TEMPLATE2
}
}
MODE - Format for multi-level output mode assignment. First Level Modes: add, edit, read. Second-level modes: add.full, edit.short, read.full. To indicate the correspondence of all nested modes, use the symbol *. So for the record "add.*" will correspond to the combination of "add" and "add.full"
FSQL_TYPE1 - FSQL type
TEMPLATE1 - Template or alias for displaying data in the appropriate mode
Пример:
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 - The time for which the user is blocked from logging in after unsuccessful login attempts
Type: int/seconds
Default: 60