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 to initializeMobileCaptureWithUrl 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 an imageDataUri parameter, renamed from image. This parameter is not only of type string, instead of string | 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 the integrationMode configuration option.

  • Renamed the authorizationEndpoint property to authEndpoint.

  • Removed the integrationApiBaseUrl configuration option. The authEndpoint and passiveLivenessEndpoint 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 the hideNext parameter of the Result component.

  • Updated the onWizardDone event of the Wizard component to allow SelfieCaptureResult 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 parameter

    • All 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 when includeVideo is set to true.

  • 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 and thresholdAdjustAmount 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 the openPassiveLivenessDetection function of Sybrin.Biometrics.Api (default false). When set to true, the selfie image will be returned on the PassiveLivenessResult as a data URI string.

  • Added a returnImage (boolean) parameter to the constructor of the Passive Component (default false). When set to true, the selfie image will be returned on the PassiveLivenessResult 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 and authToken.

  • Added a passiveLivenessBodyValues configuration option to pass down additional form body values during the passive liveness API call, similar to the passiveLivenessHeader 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 an onLivenessError 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's onLivenessResult and onLivenessError 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 as faceDetectionScoreThreshold configuration option.

  • Removed faceDistanceThreshold configuration option and replaced it with faceDistanceLandscapeThreshold and faceDistancePortraitThreshold 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 and debugInfoEndpoint 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 and messageIncompatibleSafari 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 the getClientInfo 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 to onBeforeLiveness.

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 and messageAbort 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