Configuration file nodelocal

A nodelocal.js configuration file located on the node server (in the ...\syracuse\syracuse\bin directory) stores the parameters described below in JSON format.

The values stored in this file are automatically filled in during the installation procedure. Modifying the values provided or adding lines in this file may cause the server to fail. Be very cautious when doing so, and make sure you keep a copy of this file before doing any modification. This will allow you to roll-back to the previous settings. The node.js server must be restarted to take the modifications into account.
Caution: Some log or trace options that are useful for troubleshooting can also have a major impact on performance. They must be enabled for a limited period of time only. The nodelocal.js file is a javascript file that contains variables in JSON format.
exports.config={
  parameter1 : value,
  ...
  parameterN : value,
  section1 : {
               parameter1_1 : value,
               ...
               parameter1_N:value,
               sub_section1: {
                              parameter1_1_1 : value,
                            ...
                              parameter1_1_M : value
                            },
               ...
            }
  section2 : {
              ...
            },
          ...
  sectionL : {
              ...
            }
};
In this structure:
  • "section1", "section2", ..., "sectionL" are used to group parameter values logically. In most cases, a section can be absent from the configuration file, in which case default values apply. A section can contain a list of properties.
  • "parameterXXX" is the name of a parameter. A parameter can be enclosed in a section, or directly at the root level of the config structure.
  • "value" is a JSON constant that can be either:
    • a number, for example "8124"
    • a logical value that can be "true" or "false"
    • a regular expression between slashes such as "/^.*abc$/"
    • a string between single or double quotes, for instance ""it isn't a wrong value"" or "'very "nice" constant'"
    • a collection of values between square brackets, for instance "[3,1,4,1,5,9,2,6,5,3,5,8,9,7]" or "[ "John","Mary","Luke"]"
    • a structure containing a list of property names and their values enclosed in curly brackets, for instance "{ firstName : "John", name : "Doe", age : 25, isMarried : true }"
The list of sections and their main parameters is provided in this documentation. ## Root level Two parameters are directly at the root level of the config structure:
ParameterValue typeExplanation
enablePartnerFeatureslogicalIf set to "true", it allows partners to set up a factory ID on security profiles, and to flag administration data as factory to protect them.
adminUserRestrictlogicalIf set to "true", it disables the possibility to associate Syracuse users to X3 users, including for administrators.

hosting

The hosting section contains parameters related to the node.js web server:

ParameterValue typeExplanation
multiTenantlogicalSet to "true" if hosted on Cloud V1 (not Mindo). In this case, the tenantId is extracted from the HTTP Host header and is used to prefix the MongoDB database names and the Elasticsearch index names.
cloudPlatformstringIt is only set in the case of cloud versions. Example: value "mindo" for Cloud V2.
httpslogicalIf set to "true", it indicates that all public URLs must start with "https". This is the case if the node service is front-ended by a proxy or a load balancer that handles https on its behalf.
sitecheckstructureTo be enabled only if you need to check the status of the site. The following values are needed:
  • localTest (logical)
  • host (string)
  • port (number)
  • dataset (string)
  • landingPage (string)
localBalancerlogicalIf set to "true", the load balancer only distributes requests to its own child processes
dbUnlocklogicalIf set to "true", the load balancer starts the node processes with the "--dbUnlock" flag (when the MongoDB database is in lock state).
nodeOptionsstringNode parameters to be passed when the service starts (such as "--prof" or "--max_old_space_size").

x3batch

ParameterValue typeExplanation
retryCountnumberNumber of additional attempts to connect to the Sage X3 server possible after failing the first time. If set to "0", no further attempt is possible.
retryIntervalnumberTime before the next attempt to connect to the Sage X3 server (in milliseconds). If set to "0", no further attempt is possible.
hoststringHost name (including port number and protocol) used to compute the base URL sent to Sage X3. You can use placeholder {{tenantId}} which will be replaced with the current tenant name. For example: "https://{{tenantId}}.def.com:8126".

security

ParameterValue typeExplanation
httpstructure
  • Contains the HTTP headers. Refer to the dedicated documentation for more information.
  • Contains the "allow" parameter that allows you to define which option requests can be executed (POST, GET).
corsstructureAllows you to set "all access-control" headers required for cross-origin calls.
signInstructureContains:
  • the "rememberMe" parameter, which contains the "lifetime" parameter. This parameter sets the lifetime (in days) of the "rememberMe" token. The default value is "28". You can use decimal numbers for fractions of days. Use values equal or inferior to zero to disable the "rememberMe" feature.
  • the "autocomplete" parameter which corresponds to the autocomplete behavior for logins and passwords. The default values are "true" for login and password if "rememberMe" is enabled, and "false" for login and password if "rememberMe" is disabled.
    Note that the autocomplete behavior is browser specific, and that browsers can prompt you to save a password regardless.
profilestructureContains the "officeDocumentBlackList" parameter which lists the unauthorized MS Office document types. By default, all MS Office documents types are unauthorized.
tlsstructureContains the "renegotiation" and "context" parameters. These parameters are used to configure allowed or forbidden protocols and encryption algorithms. Refer to the dedicated documentation for more information.

system

ParameterValue typeExplanation
exposeStacktracelogicalIf set to "true", it adds a flag to expose stack traces to the UI. It is set to "false" by default for security reasons.
bindIPstringBinds the IP address if "IP_ANY" is not the correct binding (IPV6).
requestReportstructureContains the "threshold" parameter (number) and the "autoTraceRecord" parameter (logical).
memoryLimitnumberDeprecated. Replaced with "memoryThreshold1" and "memoryThreshold2".
memoryThreshold1numberThe load balancer stops assigning new sessions when the heap usage exceeds this value (in MB). The default value is "1000".
memoryThreshold2numberThe process is killed during the load balancer ping operation when the heap usage exceeds this value (in MB). The default value is "1500".

server

ParameterValue typeExplanation
keepAliveTimeoutnumberNumber of seconds used to set the keepAliveTimeout of the HTTP server. If it is no set the default of node.js is applied. See server.keepAliveTimeout for more information.
headersTimeoutnumberNumber of seconds to limit the waiting time for receiving the complete HTTP headers. If set, the value MUST be greater than keepAliveTimeout, if not the value will be set to keepAliveTimeout plus 10 seconds See server.headersTimeout for more information.

monitoring

The New Relic feature collects application data and generates dashboards for Sage X3 monitoring. You need to have a New Relic account to use it.

ParameterValue typeExplanation
rootstringRelative path of the folder that contains extra files.
When using New Relic, this is the folder where the newrelic.js configuration file must be stored. For more information on that file, see the Node.js agent configuration documentation.
provider namestringName of a supported provider for Sage X3 monitoring.
Currently, only "newrelic" is supported.

nanny

The parameters listed below all refer to the "nanny process" which helps with the administration of Syracuse processes.

ParameterValue typeExplanation
maxRestrictedChildrennumberMaximum number of Nodes in restricted mode. The default value is "10".
If a new node enters restricted mode, the oldest restricted node is killed.
Note: A node enters restricted mode when it has reached memoryThreshold1, or when it has reached "childPingStatusTimeout". A node in restricted mode does not accept new sessions.
Caution: Avoid values higher than "10", as it is already too much for most cases, and allocates too much memory.
childPingStatusPollingnumberCorresponds to the amount of time (in milliseconds) between each attempt to connect to child processes. The load balancer measures the response time and considers "childPingStatusPolling" for load balancing. This is a sliding mean, computed as follows:
  • The newest value is considered by (100 - "childSlidingMean") percent,
  • The previous computed value is considered by "childSlidingMean" percent.
The default value is "60000".
childPingStatusTimeoutnumberWhen the ping response from a child process takes longer than "childPingStatusTimeout" milliseconds, the child process is moved to restricted mode. The default value is "10000" (milliseconds).
childMaxTimeoutDelaynumberWhen the ping response from a child process takes longer than "childMaxTimeoutDelay" minutes, the child process gets deleted. The default value is "30" (minutes).
childSlidingMeannumberThe default value is "20" (percent).
balancingWaitTimenumberMaximum waiting time (in milliseconds) during load balancing in order to obtain results from other processes. The default value is "600".

collaboration

ParameterValue typeExplanation
logpathstringLocation of the log files. If empty, the logs are written in the "Syracuse" root directory. The default value is empty.
cacheDirstringTemporary files used by the streamline. If empty, files are generated in the .streamline directory of the current user profile.
certdirstringPath to the certificates folder.
portnumberOptional. For MongoDB connections only.
driverstringOptional. For MongoDB connections only.
hostnamestringOptional. For MongoDB connections only.
connectionStringstringOptional. For MongoDB connections only.
Its structure is "hostname:port".
databaseNamestringOptional. For MongoDB connections only.
datasetstringOptional. For MongoDB connections only.
mongoX509CertstringsOptional. For MongoDB connections only.
Its structure is "["name of client certificate with private key", "CA certificate(s)"]".
lockWaitTimeoutnumberOptional. For MongoDB connections only, with the X509 certificate.
Time-out for acquiring instance lock. The default value is "60000" (milliseconds).
dbLockWaitTimeoutnumberOptional. For MongoDB connections only.
Time-out for acquiring db lock. The default value is the value of lockWaitTimeout.

mongodb

ParameterValue typeExplanation
optionsstructureConnection options expected by the "MongoClient.connect" file of the nodejs MongoDB driver. It has to be set up when MongoDB runs in cluster mode. Refer to the MongoDB documentation for more information.
loggerstructure Contains:
  • level (string) which has three possible values: "info", "error" or "debug".
  • filter (structure) which contains the "class" parameter with any of the following values:
    • "Db": The db instance log statements.
    • "Server": A server instance (either standalone, mongos or replicaset member).
    • "ReplSet": Replicaset-related log statements.
    • "Mongos": Mongos-related log statements.
    • "Cursor": Cursor log statements.
    • "Pool": Connection Pool-specific log statements.
    • "Connection": Singular connection-specific log statements.
    • "Ping": Replicaset ping inquiry log statements.

session

ParameterValue typeExplanation
timeoutnumberInteractive session time-out (in minutes).
asyncTimeoutnumberExtra session time-out (in minutes) if an asynchronous tracker is running.
statelessTimeoutnumber (decimals allowed)Session time-out (in minutes) for stateless (web service SOAP) requests. The default value is "1" minute.
api1SessionTimeoutnumber (decimals allowed)Session time-out (in minutes) for api1 requests. The default value is "2" minutes.
checkIntervalnumberInterval (in seconds) between scans to release sessions. The default value is "60".
ignoreStoreSessionlogicalIf set to "true", it ignores the store session.
authcollection of stringsLists all authentication methods allowed:
  • "basic": for basic and ldap authentication.
  • "oauth2": for authentication with an OAuth2 server.
  • "bearer": for authentication with an OAuth2 bearer token for Web services.
  • "saml2": for authentication with a SAML2 identity provider.
  • "sage-id": for authentication with a Sage ID.
Note: Some of these methods require additional parameters in dedicated sections.
serviceAuthstringAllows a different authentication for service mode. The interactive form is hidden (but not forbidden).
enableIPChecklogicalIf set to "true", a security check is done to control that the IP has not changed between requests for the same session. The default value is "false".

streamline

ParameterValue typeExplanation
homedrivestringDrive of the node running as service.
homepathstringPath of the node running as service.
fiberslogical-
cachelogical-
verboselogical-
fastlogical-
flamegraphnumberComment out the flamegraph block to activate flame graphs. The different options are documented here.

x3fusion

The x3fusion section contains parameters related to the X3 "classic" page protocol. It should only be set up for troubleshooting purposes.

ParameterValue typeExplanation
tracerfunctionFunction used to display trace logs. The only possible value is "console.log".
profilerfunctionFunction used to profile logs. The only possible value is "console.log".
pluginstructureContains killTimeoutOnCreate (number), which sets the time-out switch orchestration mode.
protocolstringTracing protocol. It contains:
  • trace (string): The only possible value is "console.log".
  • LBFChunkSize (number): Sets the chunk size (in Kb).
  • currentVersion (number): Current version of the protocol.
sessionsstructureSession tracing. Contains trace (string), which only possible value is "console.log".
perfmonstructureContains:
  • activate (logical): If set to "true", it enables performance monitor logging.
  • detail (logical): If set to "true", it provides more details about performance monitors.
cachestructureCache tracing. Contains trace (string), which only possible value is "console.log".
reuseTimeoutnumberTime-out of session reuse (in minutes, miliseconds values are also tolerated).
webProxyWhitelistlist of strings containing regular expressionsWhitelist for the PUB web folder. It gives an array of strings containing regular expressions in order to define the sub-directories of files that can be reached from a "classic" page file URL. The default value is:
"^(.*)/(GEN|RES)/.*\.(js|json|gif|png|jpeg|jpg|ico|bmp)$" It means that any file with the extension js, json, gif, png, jpg, ico, or bmp can be loaded in the GEN or RES subdirectories of the X3_PUB/folder folder ("folder" being the folder associated to the endpoint that accesses files). This value is mandatory to make sure all features used by "classic" pages work. You can then add values to the collection according to your needs. It can also be used to access files located on the server. If you want to access mydoc.pdf in the HTML subdirectory, the corresponding URL should be "/trans/x3/erp/folder/$files/HTML/mydoc.pdf". This URL can then be used in web pages blocks to access file content, as URL such as "file:file_path" are not usable in browsers for security reasons.

help

ParameterValue typeExplanation
tracestringThe only possible value is "console.log".
rootDirstringPath to the help pages stored on the local file system.
locallogicalIf set to "true", it overrides the help URL with the local file system path.
urlstringHelp URL that overrides the cloud based help URL.

searchEngine

ParameterValue typeExplanation
baseUrlstringURL of the Elasticsearch server. It supersedes the host name and port number.
hostnamestringHost name of the Elasticsearch server. The default value is "localhost".
portnumberPort number for the Elasticsearch server. The default value is "9200".
stemmerstringThe default value is "minimal". In this case, the stemmer finds singular and plural forms alike. Other values could consider different word root levels.
allowLeadingWildcardlogicalIf set to "true", leading wildcards can affect search performances. This parameter only works if searchType is set to "exact".
searchTypelogicalThe default value is "starts with". Set to "exact" to enable leading wildcards.
requestTimeoutnumberTime between the search launch and end. The default value is 5000 ms.
tracerstructureContains:
  • trace (string): The default value is "console.log".
  • info (logical): Provides more information if set to "true".
deactivateRightlogicalDeactivate rights if set to "true".
minSimilaritynumber (decimals allowed)Default configuration options for fuzzy searches.
ignoreFrequencylogicalIgnores frequency if set to "true".
offStemmerlogicalDeactivates the stemmer for search indexation if set to "true".
useFolderNameAsIndexNamelogicalIf set to "true", it uses "solutionName.folderName" as the index name (instead of "dataset" for X3).
indexPrefixstringUsed to prefix index names in single-tenant mode, for Cloud V2 only. In multi-tenant mode (Cloud V1), the tenantId is automatically set as prefix. There is no prefix for an on-premise setup.

notificatonServer

ParameterValue typeExplanation
log LevelnumberLevel of logs for the notification server.
connect timeoutnumberConnection time-out for the notification server.
reconnectlogicalIf set to "true", it is possible to reconnect to the notification server after a failed attempt.
reconnection delaynumberDelay before the next connection attempt.
max reconnection attemptsnumberMaximum number of connection attempts after a failed attempt.
force new connectionlogicalIf set to "true", it forces a new connection.

orm

ParameterValue typeExplanation
x3stringThe only possible value is "console.log".

upload

Parameters in the upload section are only mandatory for cloud-hosted, multi-tenant installations:

ParameterValue typeExplanation
allowedTypesregular expressionWhitelist of media types allowed during upload operations.
fileMaxSizestructureTo limit the size (in MB) of the uploaded files.
  • Default (number) all files except patch files, 10 per default
  • patchUpdate (number) for patch files, 500 per default

traces

ParameterValue typeExplanation
consolelogicalFor developers only.
httplogicalLogs HTTP requests.
levelsstructureLevels that will be used for default traces settings. Valid levels values are "info", "debug", "warn", and "error". The levels parameter can contain:
  • orm (object-relational mapping)
    • factory (Syracuse entities management)
    • x3 (Sage X3 entities management)
    • mongodb (MongoDB interactions)
  • search (Elasticsearch communication)
  • notifications
  • x3Comm (Sage X3 communication layer)
    • jsRunner (Syracuse calls from 4GL processes)
    • pool (Sage X3 clients pools)
    • print (print server communication layer)
    • adxwhat
  • classic (classic server)
    • srvCache (cache management with the web application server)
    • protocol (protocol communication layer)
    • std (basic traces)
    • action (sent actions)
    • session (sessions management)
  • businessObjects (business objects integration)
  • hrm (X3 HRM portal integration)
    • loadBalancer (load balancer)
    • proxy (proxy calls)
  • help (online help integration)
  • studio
    • proxy
    • helper
    • session
    • dispatch
  • soap-generic
    • pool
    • stub
    • request
    • ackcall
The default value is "error" for each parameter.

mobileClientConfig

ParameterValue typeExplanation
httpTimeoutstringHTTP request default time-out (in ms) for the mobile client configuration.

clientSettings

ParameterValue typeExplanation
responsiveDesignlogicalIf set to "true", it enables responsive behaviors.
pendostructureActivates pendo integration. It contains:
  • api
    • apiKey
    • visitor
      • id (string)
      • email (string)
      • productName (string)
      • roleCode (string)
      • localeCode (string)
    • account
      • id (string)
      • customerName (string)
  • sanitizeRules
    • find (regular expression)
    • replace (regular expression)

mongoNotify

For OAuth2 redirection:

ParameterValue typeExplanation
oauthHoststring-
hoststring-
portnumber-
databasestring-
oauthCollectionstring-
apiHoststring-