Storage backend used for all persistence operations.
Optional tuning parameters and observability overrides.
OptionalcandidateMinScore?: numberMinimum score (0–100) passed to the
adapter's pre-filter step. Defaults to 30.
OptionaldedupWindowMs?: numberDedup window in ms; repeated identifies within this window skip DB writes. Default 5000. Set 0 to disable.
OptionalmatchThreshold?: numberMinimum confidence score (0–100) required
to consider two fingerprints the same device. Defaults to 50.
OptionalstabilityWindowSize?: numberNumber of historical snapshots used for adaptive weight computation. Default 5.
Optional observability overrides passed to DeviceManager. When omitted, defaultLogger and defaultMetrics are used.
Clear the deduplication cache immediately. Useful in tests or after a forced re-identification.
Return the metrics summary from the current metrics sink, if supported.
The object returned by metrics.getSummary(), or null if the
current metrics implementation does not expose a summary.
Returns the list of currently registered plugins (those not yet unregistered).
Identify a device from an incoming fingerprint dataset.
Runs the full pre-filter → score → decide → save pipeline and emits observability signals before returning.
dedupWindowMs, the cached result is returned without a DB write.The fingerprint data collected from the current request.
Optionalcontext: IdentifyContextOptional per-request context.
An object describing the resolved device.
Identify multiple devices in a batch.
An array of fingerprint data sets to identify.
Optionalcontext: IdentifyContextOptional context including userId and IP address.
A promise that resolves to an array of identification results.
Register a plugin with this DeviceManager.
The plugin's DeviceManagerPlugin.registerWith method is called
immediately with this instance. Returns an unregister function that removes
the plugin and calls any teardown returned by registerWith.
Any object implementing DeviceManagerPlugin.
A () => void that unregisters the plugin.
High-level device identification service.
DeviceManagerorchestrates the full fingerprint matching pipeline:adapter.findCandidates()to retrieve a small set of candidate devices whose stored fingerprints are broadly similar to the incoming data.matchThreshold, its device ID is reused; otherwise a new UUID-based device ID is minted.adapter.save().Example