Key Settings
Configuration Settings by JSON File
These settings must be set for all POS.
Table 3-1 Key Settings
| Setting | Type | Default | Description |
|---|---|---|---|
| configVersion | string | 1 | Can be used for version control. |
| eftLinkPort | number | 10100 | Is the WebSocket port that EFTLink Server uses to connect to the POS and exchange messages. |
| restApiEnabled | boolean | false | When enabled this will allow EFTLink to accept the message structuring defined in the Oracle Retail EFTLink Rest-API Guide. |
|
epsCores |
object | __________ | |
|
epsCores.cores |
object | __________ | A list of objects defining the core implementations available for the EFTLink Framework to route to. Each object maps to a numeric core identifier to the fully qualified class name of a specific core. |
| epsCores.cores.0 | string |
oracle.eftlink.opiretail.OPIRetailCore
|
|
| epsCores.routing | object | __________ | |
| epsCores.ewalletCore | string | 0 | A particular core can be designated to handle EWallet operations. |
| epsCores.giftCardCore | string | 0 | A particular core can be designated to handle gift card operations. |
| epsCores.customFormCore | string | 0 | A particular core can be designated to handle custom forms operations. |
| epsCores.referralCore | string | 0 | A particular core can be designated to handle referral operations. |
|
epsCores.payByLinkCore |
string | 0 |
A particular core can be designated to handle paybylink operations. For example: "epsCores": { "cores": { "0": "oracle.eftlink.opiretail.OPIRetailCore", "1": "oracle.eftlink.paybylink.PayByLinkCore" }, "routing": { "ewalletCore": "0", "giftCardCore": "0", "customFormCore": "0", "referralCore": "0", "payByLinkCore": "1", "selfReferralEnabled": false } |
| epsCores.selfReferralEnabled | boolean | false | Whether to allow a core to handle its own referral. |
| epsCores.invalidCorePromptTimeout | number | 10 | Timeout in seconds, for displaying the TXT_INVALID_CORE message to the operator. |
| tls | object | __________ | |
| tls.expiryWarningLogDays | number | 90 | Specify the number of days prior to TLS certificate expiry that clear warnings will be included in log files during communication sessions. |
| tls.expiryWarningMessageDays | number | 90 | Specify the number of days that clear warnings presented to the operator at start of day prior to TLS certificate expiry. |
| tls.enableTLSRSACiphers | boolean | false | Enables TLS_RSA_* ciphers by removing them from the JDK disabled algorithms list. This is used when RSA-based TLS ciphers must be permitted for compatibility with legacy integrations with PEDS. |
| tls.protocolsAllowList | array | TLSv1.3, TLSv1.2 | Restricts the protocols which are permissible in the connection between POS and EFTLink Server. |
| tls.cipherAllowList | array |
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_CCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CCM,TLS_ECDHE_ECDSA_WITH_AES_128_CCM
|
Restricts the ciphers which are permissible in the connection between POS and EFTLink Server. The allow list only includes ciphers which are approved under Oracle Approved Technologies: Security Protocols. |
| tls.cipherDenyList | array | SSL_.*,TLS_EMPTY_.*,.*_SHA,.*_3DES_.*,.*_DES_.*,.*_WITH_NULL_.*,.*_anon_.*,.*EXPORT.*,.*LOW.*,.*MD5.*,.*DES.*,.*RC2.*,.*RC4.*,.*PSK.*,TLS_DH_.*,TLS_DHE_.* | Restricts the ciphers which are not permissible in the connection between POS and EFTLink Server. The deny list by default includes ciphers which are not approved under Oracle Approved Technologies: Security Protocols. |
| communications | object | __________ | |
| communications.connectionRecoveryWaitMillis | number | 30000 | |
| communications.connectionRecoveryPingClientIntervalSeconds | number | 2 | |
| communications.processingQueueWaitMillis | number | 120000 | |
communications.backgroundQueueWaitMillis
|
number | 60000 | |
| security | object | __________ | |
| security.keyStore | object | __________ | |
security.keyStore.hashingIterations
|
number |
10000
|
Specifies number of iterations. Valid range 10000 to 100000 |
| security.keyStore.hashingByteSize | number | 384 | Specifies hash byte size. Valid values 256, 384, 512 |
| security.keyStore.hashingAlgorithm | string | PBKDF2WithHmacSHA512 | Specifies hashingAlgorithm, currently only PBKDF2WithHmacSHA512 supported. |
|
security.keyStore.keyAlgorithm
|
string |
AES
|
Specifies keyAlgorithm, currently only AES supported. |
| security.keyStore.keySize | number | 256 | |
| security.trustStore | object | __________ | |
| security.trustStore.hashingIterations | number | 10000 | Specifies Truststore number of iterations. Valid range 10000 to 100000 |
| security.trustStore.hashingByteSize | number | 384 | Specifies Truststore hash byte size. Valid values 256, 384, 512 |
| security.trustStore.hashingAlgorithm | string | PBKDF2WithHmacSHA512 | Specifies Truststore factory, currently only PBKDF2WithHmacSHA512 supported. |
| security.trustStore.keyAlgorithm | string |
AES
|
Specifies Truststore keyspec, currently only AES supported. |
| security.trustStore.keySize | number | 256 | |
| security.dataStore | object | __________ | |
| security.dataStore.hashingIterations | number | 10000 | Specifies DataStore number of iterations. Valid range 10000 to 100000 |
| security.dataStore.hashingByteSize | number | 384 | Specifies DataStore hash byte size. Valid values 256, 384, 512 |
| security.dataStore.hashingAlgorithm | string | PBKDF2WithHmacSHA512 | Specifies DataStore factory, currently only PBKDF2WithHmacSHA512 supported. |
| security.dataStore.keyAlgorithm | string |
AES
|
Specifies DataStore keyspec, currently only AES supported. |
| security.dataStore.keySize | number | 256 | |
| lineDisplay | object | __________ | |
| lineDisplay.enabled | boolean | true | If set to false, all Sale State Notifications will be ignored and not passed on to any active EPSCore. |
|
lineDisplay.delegateLineDisplay
|
boolean | false | If set to true a delegated list will be used to control which core receives Sale State Notification requests. |
| lineDisplay.lineDisplayDelegateList | array | ||
| pedPoolingMode | object | __________ | |
| pedPoolingMode.enabled | boolean | false | |
| pedPoolingMode.showLastTerminalOnTop | boolean | false | |
| pedPoolingMode.displayListOfPedForFailure | boolean | true |
In PED pooling mode, this determines if Eftlink displays the list of terminals when the request failed or declined using the default terminal. This is to give the associate an option to select another terminal for the next request. |
| pedPoolingMode.deviceRequestInPedPoolModeEnabled | boolean | true | |
| pedPoolingMode.terminals | array<object> | __________ |
List of terminal definitions. Each entry maps a server number to a terminal identifier and description. For example, "terminals": [ { "serverNumber": 1, "terminal": "terminal1", "description": "Terminal 1" }, { "serverNumber": 2, "terminal": "terminal2", "description": "Terminal 2" }, { "serverNumber": 3, "terminal": "terminal3", "description": "Terminal 3" } ]
|
| pedPoolingMode.terminals[].serverNumber | number | <number> | |
| pedPoolingMode.terminals[].terminal | string | <identifier> | |
| pedPoolingMode.terminals[].description | string | <description> | |
| pedPoolingMode.pools | array<object> | __________ |
List of pool definitions. Each entry maps a pool number to a pool identifier, description, and an array of terminals. For example, "pools": [ { "id": "pool1", "description": "menswear-pool1", "terminals": [ "terminal1" ] }, { "id": "pool2", "description": "ladieswear-pool2", "terminals": [ "terminal1", "terminal2" ] }, { "id": "pool3", "description": "mobile-pool3", "terminals": [ "terminal1", "terminal2", "terminal3" ] } ] |
| pedPoolingMode.pools[].id | string | <identifier> | |
| pedPoolingMode.pools[].description | string | <description> | |
| pedPoolingMode.pools[].terminals | array<string> | <terminal{n}> | |
| pedPoolingMode.pools | array<object> | __________ |
List of posMapping definitions. Each entry maps a workstation to a pool identifier, which is defined within the pools object above. An optional terminal can be declared as a default. For example, "posMappings": [ { "workstationId": "1", "poolId": "pool1", "customForms": true, "posDescription": "POS {}" }, { "workstationId": "2", "poolId": "pool2", "defaultTerminal": "terminal2", "posDescription": "POS {}" }, { "workstationId": "3", "poolId": "pool3", "defaultTerminal": "terminal3", "posDescription": "POS {}" }, { "workstationId": "^10[0-5]$", "poolId": "pool3", "defaultTerminal": "terminal2", "posDescription": "POS {}" } ]
|
| pedPoolingMode.posMappings[].workstationId | string | <workstation identifier> | |
| pedPoolingMode.posMappings[].poolId | string | <pool identifier> | |
| pedPoolingMode.posMappings[].customForms | boolean | true | |
| pedPoolingMode.posMappings[].defaultTerminal | string | <default terminal> | |
| pedPoolingMode.posMappings[].posDescription | string | <description> | |
| pos | object | __________ | |
| pos.showPrintingDialog | boolean | false |
Whether to precede each print request with a TXT_PRINTING For example, "Printing. Please Wait" dialog. |
| pos.disableEventLog | boolean | false | |
| windowsAccountSecurity | object | __________ | |
| windowsAccountSecurity.allowMapMachineNameToSystemAccount | boolean | false |
Allow the application to correctly secure access to data folders when running under the Windows Local System Account. It is strongly recommended that the application is not configured to run using the Windows Local System account, instead use the Windows Local Service account when use of a local Windows machine account is desired. Note, that the Windows Network Service account should not be used. |
| proxy | object | __________ | |
| proxy.httpsProxyHost | string | Specifies the HTTPS proxy hostname or IP address that outbound HTTPS connections should use. | |
| proxy.httpsProxyPort | string | Specifies the HTTPS proxy port that outbound HTTP connections should use. | |
| proxy.httpProxyHost | string | Specifies the HTTP proxy hostname or IP address that outbound HTTP connections should use. | |
| proxy.httpProxyPort | string | Specifies the HTTP proxy port that outbound HTTP connections should use. | |
| proxy.nonProxyHosts | string |
Specifies a list of hostnames or IP addresses that should bypass the proxy and connect directly. Entries are separated by | and may include WildCards (*). For example: "nonProxyHosts": "localhost|127.0.0.1|*.mycorp.com")" |
|
| globalisation | object | __________ | |
| globalisation.displayLanguage | string | EN |
Language for display texts. For whichever country code is set, there must be a matching LangXX.properties file. A hierarchy is implied for example EN_US is taken as an extension of EN. |
| globalisation.languageFolder | string | . |
The location of the Lang<CC>_<Core>.properties files exist. Support relative path. Not permitted to traverse outside of installation folder. |
| globalisation.decimalPlaces | number | 2 | Number of decimal places to show. |
| eventLogDeviceRequestsEnabled | boolean | true | |
| cardRangeFile | string | ./CardRange.xml |
The name and location of the range xml file. Support relative path. Not permitted to traverse outside of installation folder. |
| customWalletMapping | object | ||
| additionalContentMaskList | string | Comma delimited list of XML or JSON fields to be masked in the log | |
| originalPSPNamesToBypassPSPChecking | string | Comma delimited list of EPSCore names to skip for checking that takes place on follow on transaction (Voids and Referenced Refunds). | |
| maskTextLinesOnDeviceRequest | boolean | true | Determines whether the contents of textline elements within a raised device request are masked within the log file. |
Configuration Settings by Properties File
These settings must be set for all POS.
Table 3-2 Key Settings
| Setting | Description | Example |
|---|---|---|
| EPSCore0 |
Name of EPS subsystem. Plugin cores must be specified by their full package name, and the package must also be added to the execution class path. EPSCore0 is mandatory. Note: EPSCore0 is set by installcore.bat / installcore.sh. |
EPSCore0 = oracle.eftlink.opiretail.OPIRetailCore |
| DisplayLanguage |
Language for display texts. For whichever country code is set, there must be a matching LangXX.properties file. A hierarchy is implied for example EN_US is taken as an extension of EN. |
DisplayLanguage = EN |
| LanguageFolder | The location of the Lang<CC>_<Core>.properties files exist. Support relative path. Not permitted to traverse outside of installation folder. | ./lang |