Release Notes
Have a feature request? Contact us
3.3.0 - 2023/11/16
Breaking Changes
Changed how mobile capture initialization works. On both the Prepare component and the Wizard component, the function has been renamed from
initializeMobileCaptureWithId
toinitializeMobileCaptureWithUrl
and now only requires one parameter (url) instead of three (previously these were mobileId, baseUrl, fullUrl).
Changes & additions
Added metadata configuration to allow for additional values to be returned and emitted through the SDK.
Changed the result component to now accept either a data URI or a base64 string as an input image. Previously, only data URI was accepted.
3.2.2 - 2023/10/04
Changes & additions
Improvements to the behavior of the SDK's Device Select component when handling permission requests. These enhancements ensure a smoother and more intuitive experience when allowing or denying permissions in various scenarios.
Added
sy-b-translation-47
translation for when camera permission has been denied.
3.2.1 - 2023/09/29
Breaking Changes
Visual overhaul.
All components have been visually updated to have a sleeker style.
New font is being used - Roboto.
Icons have been reworked.
The
extractFaceFromImage
function exposed by the JavaScript API has been updated to expect animageDataUri
parameter, renamed fromimage
. This parameter is not only of typestring
, instead ofstring | ImageData
.Discontinued support for the PNG (Portable Network Graphics) format. Consequently, the option to capture images in PNG format will be removed from the available capture options.
Removed the sybrin.biometrics.all.js script in favor of the more optimal implementation of using sybrin.biometrics.js in conjunction with sybrin.common.js.
Changes & additions
Added a new configurable button to allow triggering a "Send SMS" event from the Prepare component when starting a mobile capture session.
Prepare component: Added
enableSendSms
constructor parameter.Prepare component: Added
onSendSms
event.
Changed error handling with camera initialization to give more distinct feedback when camera permission has been denied.
Added light threshold functionality that allows for dynamic adjustment of overexposure and underexposure thresholds to prevent the user from getting completely stuck due to poor lighting conditions.
Added more details about the device used for capture to the emitted result objects for liveness and selfie capture.
Added more details about the device used for capture to the snapshot data object for the header and body callback functions executed during liveness.
Bug fixes
Fixed an issue where the SDK would throw an emulation error on older devices using newer browser versions.
Fixed video recording initialization failing on Firefox when ideal media constraints cannot be met.
Added missing StepType export.
Fixed broken translations on Prepare component:
sy-b-translation-40
sy-b-translation-41
Resolved language change bug to preserve component integrity. Now, when users switch languages, the component remains intact, providing a seamless experience without unnecessary disruptions.
When the user clicks "Cancel" during image processing, the SDK now immediately triggers the navigation back to the previous screen. This behavior is consistent regardless of whether the network request is still ongoing.
The request for camera permission removed when in read-only mode.
2.5.3 - 2023/05/09
Changes & additions
Changed the
includeVideo
configuration option to allow for multiple different styles of video capture.
2.5.2 - 2023/05/02
Changes & additions
Added configuration option to toggle between using image or video for liveness analysis.
Changed the web SDK to automatically handle the body, headers and hashes corresponding to the liveness type.
2.5.0 - 2023/04/12
Breaking Changes
Refactored SnapshotData model to LivenessSnapshotData model.
Changes & additions
Added control over image capture formats (currently supports JPEG and PNG, and defaults to JPEG. Previously images were only captured in PNG format).
Added Face Compare functionality.
Face Compare component.
In JavaScript API, added face comparison functionality.
Added associated configuration options.
Added associated models, such as FaceCompareSnapshotData.
In JavaScript API, added functions to show and hide loader.
In JavaScript API, added function to handle compatibility info result.
Limited frame rate for video recordings to 15 fps.
Face registration, face verification and identifier verification.
In JavaScript API, added functions for face registration and verification.
Added maximum upload file size configuration option.
Added UI-side face extraction functionality.
In JavaScript API, added function to extract face from image.
Added an extracted face image and hash to SelfieCaptureResult.
Added an extracted face image and hash to PassiveLivenessResult.
Added video hashes.
Added video hash to LivenessSnapshotData.
Added video hash to PassiveLivenessResult.
Added video hash to SelfieCaptureResult.
Bug fixes
Fixed video recordings not working since iOS 16.
Fixed issue with an error being thrown if cancelling the operation while recording a video.
Fixed mobile capture URLs to generate with a trailing slash.
2.4.3 - 2022/12/15
Changes & additions
Added configurable skip functionality.
Bug fixes
Fixed spinners on iOS.
Fixed some conflicting translation keys.
2.4.0 - 2022/10/21
Breaking Changes
Changed the authorizationEndpoint configuration option to authEndpoint.
Changed guidelines on the Prepare component to show on the initial screen instead of requiring a button press to view in a new window.
Removed the setFlowDirection function and the flowDirection initialization property from the Prepare component as it is no longer used since changing the way that guidelines are presented.
Removed the setFlowDirection function and the flowDirection initialization property from the Wizard component as it is no longer used since changing the way that guidelines are presented.
Removed the exported FlowDirection enum.
Removed the onViewGuidelines event from the Prepare component as there is no longer a button to view guidelines.
Removed the onViewGuidelines event from the Wizard component as there is no longer a button to view guidelines.
Changed the Result component to show the selfie image even if the liveness analysis returned false.
Removed the passiveLivenessModelNumber configuration option. This value can instead be edited using the configurable liveness callback function.
Changes & additions
Changed the Device Select component to display differing device icons based on detected type. It can now display mobile, tablet, webcam and a generic camera for other types.
Added api as a property on the Prepare component's initialization parameter.
Instead of always throwing an exception when no video input devices have been detected, the SDK now only throws an exception if no other capture method is available either.
Added parameter on Wizard to set camera direction priority.
Changed the default translation text for sy-b-translation-25 from "Please open both eyes" to "Please look at the camera".
The SDK will now retry accessing the camera for a configurable number of times if it fails to gain access initially.
Added mediaStreamRetryCount configuration option.
Added mediaStreamRetryDelay configuration option.
Changed the default faceDistanceLandscapeThreshold value from 0.5 to 0.35.
Changed the default faceDistancePortraitThreshold value from 0.5 to 0.35.
Changed the default eyeDetectionThreshold value from 2 to 3.
Added eyeDetectionScale configuration option.
Added faceDetectionScale configuration option.
Added recordAudio configuration option.
Removed the need for the audio permission unless the newly added recordAudio configuration option set to true.
Slightly enlarged the area in the face detection zone that is used to look for the user's eyes.
Changed the SDK to eventually stop attempting to use eye detection if it is taking too long.
Changed Device Select component listing to attempt using more user-friendly labels on mobile devices that provide bad naming conventions for their cameras.
Changed the UI loader/spinner.
General styling fixes.
Bug fixes
Fixed a timing issue that could sometimes cause buttons on the prepare component to be created in an unintended order.
Fixed a bug that prevented liveness from being initialized for a second time if the previous initialization occurred from a different Api instance.
Fixed certain permission issues causing the SDK to fail to retrieve or initialize video input devices on Safari and Firefox.
2.3.2 - 2022/07/27
Breaking Changes
Removed the
useIntegrationApi
configuration option and replaced it with theintegrationMode
configuration option.Renamed the
authorizationEndpoint
property toauthEndpoint
.Removed the
integrationApiBaseUrl
configuration option. TheauthEndpoint
andpassiveLivenessEndpoint
properties must now be used.Removed the
passiveLivenessImageParamName
configuration option. This value can now be modified using the body callback function (passiveLivenessBodyCallback
).Removed the
passiveLivenessVideoParamName
configuration option. This value can now be modified using the body callback function (passiveLivenessBodyCallback
).Removed the
assetHeaders
configuration option. Asset headers can now be modified using the asset headers callback function (assetHeadersCallback
).Removed the
authHeaders
configuration option. Authorization headers can now be modified using the authentication headers callback function (authHeadersCallback
).Removed the
passiveLivenessHeaders
configuration option. Passive liveness headers can now be modified using the passive liveness headers callback function (passiveLivenessHeadersCallback
).Removed the
passiveLivenessBodyValues
configuration option. Passive liveness body can now be modified using the passive liveness body callback function (passiveLivenessBodyCallback
).
Changes & additions
Added optional middleware service that may be used to obfuscate the liveness API key, along with corresponding configuration properties. Please see the middleware service documentation for details on how to implement and use it. Additionally, the SDK can now be configured to integrate with custom services. Relevant configuration properties are:
integrationMode
authHttpMethod
authHeadersCallback
authBodyCallback
passiveLivenessHttpMethod
passiveLivenessHeadersCallback
passiveLivenessBodyCallback
encryptionKey
Added Selfie Capture component with corresponding
SelfieCaptureResult
object.Added a function for selfie capture (without liveness) to the JavaScript API.
Added
readonlyMode
parameter to the Prepare component.Added parameters to the Prepare component's mobile capture initialization function to allow more control over the generated URL.
Added
hideNext
parameter to the Result component.Added
resultHideNext
parameter to the Wizard component, corresponding with thehideNext
parameter of the Result component.Updated the
onWizardDone
event of the Wizard component to allowSelfieCaptureResult
as a return type, returned when selfie capture is being used instead of passive liveness.Added new events to the Wizard component for handling processing from the Selfie Capture component:
onSelfieResult
onSelfieError
onSelfieCancelled
Added encryption features
Bug fixes
Fixed an issue with the SDK sometimes defaulting to emulated cameras when present.
Fixed issue where the card elements within components were sometimes not sized correctly.
Fixed video mirroring issue.
Fixed issue where text sometimes was not center aligned where it needed to be.
Fixed a bug where the device select component would always appear when set as the first step (regardless of whether or not only a singular viable video input device is present).
2.2.0 - 2022/06/21
Breaking Changes
On the Prepare component, changed the onProceed event to onTakePhoto.
Changes & additions
Added configurable mobile capture functionality to the Prepare component.
Added enableMobileCapture parameter to constructor
Added onMobileCaptureStart event
Added onMobileCaptureCancel event
Added initializeMobileCaptureWithId function
Added mobile capture configuration options to Wizard component
Added enableMobileCapture parameter to constructor
Added onMobileCaptureStart event
Added onMobileCaptureCancel event
Added initializeMobileCaptureWithId function
Added generic SDK classes to HTML elements to simplify styling over multiple SDKs.
Aligned Passive component video element classes with similar elements on other SDKs.
Added the following translation keys (See relevant component documentation for details):
sy-b-translation-36 (PrepareComponent)
sy-b-translation-37 (PrepareComponent)
sy-b-translation-38 (PrepareComponent)
sy-b-translation-39 (PrepareComponent)
sy-b-translation-40 (PrepareComponent)
sy-b-translation-41 (PrepareComponent)
sy-b-translation-42 (PrepareComponent)
sy-b-translation-43 (PrepareComponent)
sy-b-translation-44 (ResultComponent)
2.1.1 - 2022/06/08
Bug fixes
Fixed information blocks on the Prepare component having inconsistent sizes on smaller screens.
Fixed an issue with guidelines not being viewable in Safari on mobile devices.
Changes & additions
Added support for multiple faces, where the SDK will take the largest face into account. This is configurable with the
allowMultipleFaces
API configuration option.
2.1.0 - 2022/06/03
Breaking Changes
Removed all localization properties available as JavaScript API configuration options. These values can now be modified by making use of the new localization framework. Removed properties are:
messageAlignment
messageBlurry
messageDistance
messageHold
messageIncompatible
messageIncompatibleVideo
messageIncompatibleSafari
messageLightingBright
messageLightingDark
messageNoFace
messagePreparing
messageSuccess
Changes & additions
Comprehensive localization rework (See localization section for details)
All components now accept a
translations
parameterAll templates updated to have translatable elements marked with the class
sy-b-translation-#
(where # is its unique number)
2.0.0 - 2022/05/17
Breaking Changes
Extensive UI overhaul of all components and functionality.
Passive Component:
Removed all localization options for a future localization overhaul.
Removed useModal parameter from passive component (As part of the UI overhaul, there is no longer a modal option).
Removed readonlyMode parameter from passive component (The same functionality can now be achieved by using the newly added wizard component).
Removed returnImage parameter from passive component (The image is now always included on the result).
Visual UI overhaul.
Result Component:
Removed all localization options for a future localization overhaul.
Changed the onRetry event to onRetake.
Visual UI overhaul.
JavaScript API configuration options:
Changed passiveLivenessParamName property to passiveLivenessImageParamName
Adjusted blurThreshold property default value from 7.0 to 7.5 in order to account for new dimensions.
Added blurThresholdMobileModifier property with a default value of 1.25 in order to apply different thresholds on different platforms. This is to account for the fact that mobile devices generally have better quality cameras and may be more strict with blur detection.
Changed faceDistancePortratThreshold property from 0.75 to 0.5
Changed messageSuccess property default value from 'Good job!' to 'Good job! Please wait...' to cater for video recording.
Added messageIncompatibleVideo property for instances where video recording is not supported.
Added showDebugOverlay property.
Changes & additions
Added WizardComponent with additional components to allow for a configurable flow:
PrepareComponent
DeviceSelectComponent
Added optional parameters to the getVideoInputDevices function on the API to specify whether or not the UI should be blocked while loading input devices, along with the capability to specify an element to block.
Added checks for video recording feature availability on compatibility check function.
1.6.3 - 2022/04/04
Changes & additions
Added capability to record video. In the configuration options section, please see the following properties for details on how to make use of this feature:
includeVideo
videoDuration
messageHold
passiveLivenessVideoParamName
Added a
video
property to the passive liveness result object that gets populated whenincludeVideo
is set totrue
.Removed the
returnImage
property from the passive liveness call and changed it to always be included. This is to reduce clutter and align video and image data return behavior.Added threshold reduction functionality that can be applied if face tracking fails to detect a face for an extended period of time. See
thresholdAdjustInterval
andthresholdAdjustAmount
properties under configuration options.
Bug fixes
Fixed a bug on Firefox where emulation detection using the facing mode executed incorrectly.
1.6.2 - 2022/02/24
Changes & additions
Added the capability to cater for disabilities during liveness detection, specifically for lost eyes.
Added emulation checks.
Added a property on liveness detection results to indicate which camera was used.
Bug fixes
Fixed a bug where certain error responses were handled like a success.
1.6.1 - 2022/01/17
Changes & additions
Added a
returnImage (boolean)
parameter to theopenPassiveLivenessDetection
function ofSybrin.Biometrics.Api
(defaultfalse
). When set totrue
, the selfie image will be returned on thePassiveLivenessResult
as a data URI string.Added a
returnImage (boolean)
parameter to the constructor of the Passive Component (defaultfalse
). When set totrue
, the selfie image will be returned on thePassiveLivenessResult
as a data URI string.
1.6.0 - 2022/01/13
Changes & additions
The SDK is now provides two different options for referencing the main library:
A singular file that contains all functionality (sybrin.biometrics.all.js). This matches implementations from previous versions.
A split approach where Biometrics specific functionality is provided in one file (sybrin.biometrics.js) and common functionality shared by other Sybrin web SDKs is provided in another (sybrin.common.js). This approach is new and is intended to reduce the overall page size in solutions that make use of multiple Sybrin web SDKs by including common functionality only once.
1.5.0 - 2021/12/02
Changes & additions
Added device selection functionality.
1.4.2 - 2021/11/19
Changes & additions
Added configuration to integrate with the companion Sybrin Onboarding API as a middleware proxy when bundled with the web SDK. These configuration options include
useIntegrationApi
,integrationApiBaseUrl
andauthToken
.Added a
passiveLivenessBodyValues
configuration option to pass down additional form body values during the passive liveness API call, similar to thepassiveLivenessHeader
configuration option.
1.4.1 - 2021/11/10
Changes & additions
Changed the Passive Component's internal error handling to always trigger the
onLivenessResult
event, even after anonLivenessError
event occurred. While not a breaking change, this could have an external effect on flows where the web SDK has been implemented, specifically where the Passive Component'sonLivenessResult
andonLivenessError
events are used to manage flow steps.Added an
eyeDetectionThreshold
configuration option for adjusting eye detection sensitivity.The values set in the
passiveLivenessHeaders
configuration option will now be included in debug information when used.
Bug fixes
Fixed some internal memory cleanup errors.
Fixed an issue that caused the web SDK to stop working when re-initializing the JavaScript API.
1.4.0 - 2021/10/12
Breaking changes
Face detection technique has changed and no longer uses the same detection models as before. Please ensure that you have the new model files as listed in the Get Started section.
Removed
faceDetectionModel
as well asfaceDetectionScoreThreshold
configuration option.Removed
faceDistanceThreshold
configuration option and replaced it withfaceDistanceLandscapeThreshold
andfaceDistancePortraitThreshold
respectively for different orientations.
Changes & additions
Added eye detection features, along with
messageEyeClosed
configuration option.Changed
messageAlignment
configuration option default value from "Please center face and open your eyes" to "Please center face".Added debug functionality features, along with
recordDebugInfo
anddebugInfoEndpoint
configuration options.Added a
tokenTimeout
configuration option that determines how long a token is valid and will be reused for before a new authentication call is made.Increased the default blur threshold from 5.5 to 7.0 (see
blurThreshold
under the API configuration options).Enhanced performance by adding preprocessing to downscale the image that is analyzed for viability.
Added
targetProcessingSize
configuration option to set the target value of the largest dimension that the image will be resized to during preprocessing.Added compatibility check features, along with
messageIncompatible
andmessageIncompatibleSafari
configuration options.
Bug fixes
Fixed a bug where the modal didn't take up the whole screen when the component was hosted in certain containers.
1.3.0 - 2021/09/28
Breaking changes
The default model files have been renamed in order to allow for multiple models to choose from. Please see the Get Started section for an overview of the new file structure, as well as the updated API configuration options for details on how to configure model usage via the
faceDetectionModel
property. The new names for the files are:assets/express-model-shard1.xml
assets/express-model-weights_manifest.json
Changes & additions
Added a more accurate, but larger model for face detection that can optionally be used instead of the default express model. This can be configured via the
faceDetectionModel
property on the API configuration options.Added a strongly typed
ClientInfo
class that is now returned by thegetClientInfo
call.Added more detailed information to be returned from
getClientInfo
.Added custom header configuration for authentication (
authHeaders
) and passive liveness (passiveLivenessHeaders
) API calls that can be set using the API configuration options.Changed the default blur text to "Image too blurry" (see
messageBlurry
under the API configuration options).Changed the default message when no face is detected to "Scanning for face..." (see
messageNoFace
under the API configuration options).Significantly reduced the default face detection score threshold from 0.5 to 0.15 (see
faceDetectionScoreThreshold
under the API configuration options).Slightly increased the default blur threshold from 5.0 to 5.5 (see
blurThreshold
under the API configuration options).
Bug fixes
Fixed a memory leak that occurred while the video feed was being processed.
Fixed a bug where resizing while the video feed is already open would not properly adjust processing areas.
Fixed a bug on iPad where the video feed was blank.
Fixed a bug on iPad where the video cutout would sometimes not re-render correctly on resize or orientation change.
Fixed some exceptions not being handled properly.
Fixed media stream remaining open for longer than necessary after a photo was successfully taken.
Fixed styling being applied to some elements too strictly (would have needed to use !important to style said elements before).
1.2.0 - 2021/09/10
Breaking changes
Changed all
onBeforeWebcam
events toonBeforeLiveness
.
Changes & additions
Inverted the video feed when a frontal camera is being used in order to improve the alignment process.
Added typings for Typescript. These can be found under the
src
folder.The library no longer requires
sybrin.biometrics.css
to be included and referenced separately for default component styling to take effect. You may still apply overrides using your own stylesheet by referencing a custom .css file after the library.Added a read-only mode to the passive component which disables all events.
Added an option to set request headers for asset retrieval requests.
Bug fixes
Fixed a bug where an error occurred if the SDK was included multiple times.
Fixed a bug where the
correlationId
property was required to be passed down to the passive component.
1.1.0 - 2021/08/20
Changes & additions
Added blur detection as well as a configuration option to set the blur threshold.
Added lighting detection as well as configuration options to set values and thresholds to use when checking for image overexposure or underexposure.
Added facial distance detection as well a configuration option to set the distance threshold.
Removed hold delay before image is taken as new quality detection negates the need for it. With this, also removed
holdDelay
,messageHold
andmessageAbort
configuration options as they are no longer used.Added version info retrieval functionality.
Added client info retrieval functionality.
Added instructions page to the passive component in order to pre-emptively give the user some guidelines on how to ensure a viable selfie.
Added localization options to passive component initialization for changing guideline instruction texts.
Added
useModal
configuration option to the passive component which enables launching the video feed in a modal.Added a spinner that appears when a selfie is being processed during passive liveness detection.
Slightly tweaked the face bounding box borders to fit better vertically.
Updated the demo application to make use of the newly added client info retrieval functionality and initialize the passive component to use the newly added modal functionality only when the client environment is not mobile.
Bug fixes
Ensured that the video stream always closes when the passive component is destroyed.
Last updated