\r\n

51Degrees Device Detection Node.js  4.4

51Degrees Device Detection for Node.js

DeviceDetectionOnPremisePipelineBuilder Class Reference

Detailed Description

Examples
onpremise/automaticupdates/dataFileSystemWatcher.js, onpremise/automaticupdates/updateOnStartUp.js, onpremise/automaticupdates/updatePollingInterval.js, onpremise/gettingstarted-console/gettingStarted.js, onpremise/matchmetrics-console/matchMetrics.js, onpremise/metadata-console/metaData.js, onpremise/offlineprocessing-console/offlineProcessing.js, onpremise/performance-console/performance.js, onpremise/updatedatafile-console/updatedatafile.js, and onpremise/useragentclienthints-web/userAgentClientHintsWeb.js.

Inheritance diagram for DeviceDetectionOnPremisePipelineBuilder:

[legend]

Collaboration diagram for DeviceDetectionOnPremisePipelineBuilder:

[legend]

Public Member Functions

 constructor ({ dataFileUpdateService=null, licenceKeys=null, dataFile=null, dataUpdateVerifyMd5=true, dataUpdateUseUrlFormatter=true, autoUpdate=true, dataUpdateUrl=null, pollingInterval=30, updateTimeMaximumRandomisation=10, shareUsage=true, fileSystemWatcher=true, updateOnStart=false, cacheSize=null, restrictedProperties, performanceProfile='LowMemory', concurrency=os.cpus().length, updateMatchedUserAgent=false, maxMatchedUserAgentLength, drift, difference, allowUnmatched=false, createTempDataCopy, tempDataDir })
Extension of pipelineBuilder class that allows for the quick generation of a device detection pipeline. More...

Member Function Documentation

◆ constructor()

DeviceDetectionOnPremisePipelineBuilder::constructor (   { dataFileUpdateService=null, licenceKeys=null, dataFile=null, dataUpdateVerifyMd5=true, dataUpdateUseUrlFormatter=true, autoUpdate=true, dataUpdateUrl=null, pollingInterval=30, updateTimeMaximumRandomisation=10, shareUsage=true, fileSystemWatcher=true, updateOnStart=false, cacheSize=null, restrictedProperties, performanceProfile='LowMemory', concurrency=os.cpus().length, updateMatchedUserAgent=false, maxMatchedUserAgentLength, drift, difference, allowUnmatched=false, createTempDataCopy, tempDataDir } )
inline

Extension of pipelineBuilder class that allows for the quick generation of a device detection pipeline.

Adds share usage, caching and toggles between on premise and cloud with simple paramater changes

Parameters
{object} - options the options for the pipeline builder
{string} - [options.licenceKeys] license key(s) used by the data file update service. A key can be obtained from the 51Degrees website: https://51degrees.com/pricing. This parameter MUST be set when using a data file. If you do not wish to use a key then you can specify an empty string, but this will cause automatic updates to be disabled.
{string} - options.dataFile dataFile path for the on premise engine
{boolean} - [options.dataUpdateVerifyMd5] whether to check MD5 of datafile
{boolean} - [options.dataUpdateUseUrlFormatter] whether to append default URL params for Data File download
{boolean} - [options.autoUpdate] whether to autoUpdate the dataFile
{string} - [options.dataUpdateUrl] base url for the datafile
{number} - [options.pollingInterval] How often to poll for updates to the datafile (minutes)
{number} - [options.updateTimeMaximumRandomisation] Maximum randomisation offset in seconds to polling time interval
{boolean} - [options.shareUsage] whether to include the share usage element
{boolean} - [options.fileSystemWatcher] whether to monitor the datafile path for changes
{boolean} - [options.updateOnStart] whether to download / update a dataFile to the path specified in options.dataFile on start
{number} - [options.cacheSize] size of the default cache (includes cache if set). NOTE: This is not supported for on-premise engine.
{Array<string>} - [options.restrictedProperties] list of properties the engine will be restricted to
{string} - [options.performanceProfile] used to control the tradeoff between performance and system memory usage (Only applies to on-premise, not cloud) options are: LowMemory, MaxPerformance, Balanced, BalancedTemp, HighPerformance
{number} - [options.concurrency] defaults to the number of cpus in the machine
{boolean} - [options.updateMatchedUserAgent] True if the detection should record the matched characters from the target User-Agent
{number} - [options.maxMatchedUserAgentLength] Number of characters to consider in the matched User-Agent. Ignored if updateMatchedUserAgent is false
{number} - [options.drift] Set maximum drift in hash position to allow when processing HTTP headers.
{number} - [options.difference] Set the maximum difference to allow when processing HTTP headers. The difference is the difference in hash value between the hash that was found, and the hash that is being searched for. By default this is 0.
{string} - [options.allowUnmatched] If set to false, a non-matching User-Agent will result in properties without set values. If set to true, a non-matching User-Agent will cause the 'default profiles' to be returned. This means that properties will always have values (i.e. no need to check .HasValue) but some may be inaccurate. By default, this is false.
{boolean} - [options.createTempDataCopy] If true, the engine will create a copy of the data file in a temporary location rather than using the file provided directly. If not loading all data into memory, this is required for automatic data updates to occur.
{string} - [options.tempDataDir] The directory to use for the temporary data copy if 'createTempDataCopy' is set to true.
{DataFileUpdateService} - [options.dataFileUpdateService] Set DataFileUpdateService so the datafiles can receive automatic updates