Skip to content

Commit

Permalink
Updating CHANGELOG and README for v5.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
usmanliaqat97 committed May 30, 2024
1 parent c339639 commit 15cad68
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 42 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## 30.05.2024 5.2.0

## Added
- Enhanced security for Dynamic Liveness (previously GPA).

## Fixed
- **FireFox Mobile**: Fixed an issue with Firefox Mobile not always accepting given camera video constraints.
- **Landscape Orientation**: Landscape Orientation: Fixed instances where streaming could start while the device was in landscape mode, even though landscape orientation was blocked.
- **Assets**: Fixed issue where double `//` was included in some assets fetched by the Web SDK.
- **Android Chrome Desktop Mode**: Fixed an issue where the SDK would not start in desktop mode with Chrome for Android.
- **iOS SVG Element** Fixed an issue where an SVG element was appended to the body with non-zero dimensions.

## 08.04.2024 5.1.1

## Fixed
Expand Down
89 changes: 47 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
![iProov: Biometric Face Verification for Remote Identity Assurance](https://github.com/iProov/web/raw/master/images/banner.png)

# iProov Biometrics Web SDK v5.1.1
# iProov Biometrics Web SDK v5.2.0

## 📖 Table of contents

Expand Down Expand Up @@ -238,7 +238,7 @@ You can customize the look and feel of the main layout by changing the following
Color option changes introduced in [v4.0.0](https://github.com/iProov/web/releases/tag/v4.0.0):

| Color Option | Description |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| ---------------------------------------- |------------------------------------------------------------------------------------------------------------------------------------------------------|
| **title_text_color** | Adjusts the color of the text that can be added above the oval (by default there is no text here - see the custom_title option for more information) |
| **surround_color** | Adjusts the color of the surroundings to the centre oval. It also affects the color of the mask in Liveness with `clear` or `blur` filter. |
| **prompt_text_color** | Adjusts the color of the text visible in the centre prompt of the screen |
Expand Down Expand Up @@ -449,22 +449,22 @@ To integrate with our localization feature, use special class names in your slot
The following is the complete list of slots can be used with the `<iproov-me>` web component and have associated [events](#-events):

| Slot | Description |
| -------------------------- | --------------------------------------------------------------------------------------------- |
| **button** \* | Element that a user taps or clicks on to launch into fullscreen and start iProov |
| **camera_selector** \*\* | Label and dropdown populated with available cameras, if multiple cameras are detected. |
| **canceled** | State displayed to the user when they exit fullscreen before iProoving |
| **error** | State displayed to the user in the event of an error |
| **failed** | State displayed to the user when the user failed iProov |
| **grant_button** \* | Element that user taps or clicks to grant camera permission |
| **grant_permission** | State displayed to the user when camera or motion permission is unknown and not blocked |
| **no_camera** | State displayed to the user when there is no camera |
| **passed** | State displayed to the user when the user passed iProov |
| **permission_denied** | State displayed to the user when camera permission has been blocked |
| **progress** | State displayed to the user when streaming has completed and iProov is processing the result |
| **ready** | State displayed to the user when the component is ready to start the main iProov user journey |
| **rotate_portrait** \*\*\* | State displayed to the user when a handheld device is not in portrait orientation |
| **unsupported** | State displayed to the user when their browser is not supported |
| Slot | Description |
| ------------------------ | ---------------------------------------------------------------------------------------------------------- |
| **button** \* | Element that a user taps or clicks on to launch into fullscreen and start iProov |
| **camera_selector** \*\* | Label and dropdown populated with available cameras, if multiple cameras are detected. |
| **canceled** | State displayed to the user when they exit fullscreen before iProoving |
| **error** | State displayed to the user in the event of an error |
| **failed** | State displayed to the user when the user failed iProov |
| **grant_button** \* | Element that user taps or clicks to grant camera permission |
| **grant_permission** | State displayed to the user when camera or motion permission is unknown and not blocked |
| **no_camera** | State displayed to the user when there is no camera |
| **passed** | State displayed to the user when the user passed iProov |
| **permission_denied** | State displayed to the user when camera permission has been blocked |
| **progress** | State displayed to the user when streaming has completed and iProov is processing the result |
| **ready** | State displayed to the user when the component is ready to start the main iProov user journey |
| **rotate_portrait** \*\*\* | State displayed to the user when a handheld device is not in portrait orientation |
| **unsupported** | State displayed to the user when their browser is not supported |

> \* Interactive elements such as buttons that start full screen and cameras require a user gesture enforced by the browser. Using JavaScript to apply clicks is not recommended within your user journey and may cause unexpected errors or performance degradation.
> See our [User Gestures Wiki](https://github.com/iProov/web/wiki/User-Gestures) for more details.
Expand Down Expand Up @@ -492,13 +492,13 @@ The available events are detailed below with any extra properties that are suppl

| Event | Extra Properties | Description |
| ----------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **canceled** | _feedback, reason_ | User has canceled iProov by exiting fullscreen |
| **canceled** | _feedback, reason_ | User has canceled iProov by exiting fullscreen |
| **connecting** | None | The SDK is connecting to the server. You should provide an indeterminate progress indicator to let the user know that the connection is taking place. |
| **connected** | None | The SDK has connected. You should hide any progress indication at this point. |
| **error** | _feedback, reason_ | iProov encountered an error while processing the authentication |
| **failed** | _type, passed, feedback, reason_ | Authentication was unsuccessful, the user needs to try again |
| **multiple_cameras** \* | _devices, device_selector, slot, label_ | If `enable_camera_selector` is `true` returns an array of devices if more than 1 video device is detected |
| **no_camera** | _feedback, reason_ | No video input was detected on the user's device |
| **no_camera** | _feedback, reason_ | No video input was detected on the user's device |
| **passed** | _type, feedback, reason, passed_ | Authentication was successful, the result can now be validated |
| **permission** | _reason_ | Camera permission is unknown & not blocked, show permission |
| **permission_denied** | _feedback, reason_ | User has blocked access to the camera |
Expand All @@ -513,20 +513,20 @@ The available events are detailed below with any extra properties that are suppl
Properties of the event's **detail** payload:

| Property | Events | Description |
| -------------------- | -------------------------------------- | ---------------------------------------------------------- |
| **token** | All | The token associated with the authentication attempt |
| **type** (†) | _passed, failed_ | The type of authentication (`enrol` or `verify`) |
| **passed** | _passed, failed_ | Boolean value whether the result passed or failed |
| **frame** (†) (\*) | _passed, failed_ | An `ImageData` from the scanning process |
| **progress** | _progress_ | A percentage (between 0 and 100) representing the progress |
| **message** | _progress_ | A user-friendly description of the current progress stage |
| Property | Events | Description |
| -------------------- | --------------------------------------- | ---------------------------------------------------------- |
| **token** | All | The token associated with the authentication attempt |
| **type** (†) | _passed, failed_ | The type of authentication (`enrol` or `verify`) |
| **passed** | _passed, failed_ | Boolean value whether the result passed or failed |
| **frame** (†) (\*) | _passed, failed_ | An `ImageData` from the scanning process |
| **progress** | _progress_ | A percentage (between 0 and 100) representing the progress |
| **message** | _progress_ | A user-friendly description of the current progress stage |
| **feedback** | _canceled, failed, error, unsupported_ | A fixed feedback code for making logical decisions |
| **reason** | _canceled, failed, error, unsupported_ | An English description of the reason for the event |
| **slot** | _multiple_cameras_ | The relevant slot for the event, for ease of use |
| **devices** | _multiple_cameras_ | Array of suitable `InputDevice`s for imagery capture |
| **device_selector** | _multiple_cameras_ | The multiple camera selection `<select>` element |
| **is_native_bridge** | All | Boolean value if event originates from the native bridge |
| **slot** | _multiple_cameras_ | The relevant slot for the event, for ease of use |
| **devices** | _multiple_cameras_ | Array of suitable `InputDevice`s for imagery capture |
| **device_selector** | _multiple_cameras_ | The multiple camera selection `<select>` element |
| **is_native_bridge** | All | Boolean value if event originates from the native bridge |

> - The `frame` property is for UI/UX purposes only and is only available if enabled on your service provider and token configuration. Imagery upon which authentication may later rely must be obtained from the token validate endpoint by a secure server-to-server call.
> - The **type** and **frame** properties are not available when running in Native Bridge mode.
Expand Down Expand Up @@ -563,15 +563,15 @@ In all events, corresponding _reason_ field can be displayed to the user.
> ⚠️ This declares support for the new codes in the SDK. It does NOT define when the new codes will be produced by our servers.
> This capability will be delivered in the future for Liveness Assurance.
| Feedback | Reason |
| ------------------ | ----------------------------------------------------- |
| **eyes_closed** | Keep your eyes open |
| **multiple_faces** | Ensure only one person is visible |
| **obscured_face** | Remove any face coverings |
| **sunglasses** | Remove sunglasses |
| **too_bright** | Ambient light too strong or screen brightness too low |
| **too_dark** | Your environment appears too dark |
| **unknown** | Try again |
| Feedback | Reason |
| ----------------- | ----------------------------------------------------- |
| **eyes_closed** | Keep your eyes open |
| **multiple_faces**| Ensure only one person is visible |
| **obscured_face** | Remove any face coverings |
| **sunglasses** | Remove sunglasses |
| **too_bright** | Ambient light too strong or screen brightness too low |
| **too_dark** | Your environment appears too dark |
| **unknown** | Try again |

### Error Feedback Codes

Expand Down Expand Up @@ -971,6 +971,9 @@ The `native_sdk_options` setting accepts a base64 encoded JSON object of iProov
// Example shows passing title_text_color and a title to the Native SDK
iProovMe.setAttribute("native_sdk_options", btoa(JSON.stringify({ title_text_color: "#2D2D2D", title: "NB Test" })))
```
Note: Native SDK implementations can only accept colour values in `#RRGGBB` and `#AARRGGBB` formats.
#### Filters
When configuring the `filter` options, you will need to pass these in as objects via the `native_sdk_options` option. See the related [Android SDK filter docs]([#-filter-options](https://docs.iproov.com/docs/Content/ImplementationGuide/biometric-sdk/android/sdk-android-customize-ui.htm?Highlight=filter)) or [iOS SDK filter docs](https://docs.iproov.com/docs/Content/ImplementationGuide/biometric-sdk/ios/sdk-ios-customize-ui.htm?Highlight=filter) for more details on configuring filters.
Expand All @@ -985,13 +988,15 @@ Integrations via iframes are supported by the Web SDK but please note that you m
**Please note the following:**
- Iframe integrations are not supported in iOS versions `14` and lower due to iOS not supporting motion permissions in iframes. All devices attempting to run iProov will be marked as `unsupported`.
- Due to browser policies, it is also required to pass `allowfullscreen="true"` as well as the `allow` attribute.
- Its important to ensure the iframe is expanded to 100% width and height. See an example of this below.
```html
<iframe
style="width: 100vw; height: 100vh; border: 0"
src="https://your-iframe-target.example"
allow="camera;fullscreen;accelerometer;gyroscope;magnetometer;"
allowfullscreen="true"
></iframe>
```

Expand Down Expand Up @@ -1054,5 +1059,5 @@ For further help with integrating the SDK, please contact [[email protected]](m
- [Safari 15.0 tab crashes when requesting WebGL context](https://bugs.webkit.org/show_bug.cgi?id=231423)
- [Safari 15.0 unable to render webcam to canvas context](https://github.com/mrdoob/three.js/issues/22582#issuecomment-938710902)
- Flickering can occur while cropping with `clear` and `blur` SDK filters (only observed on MacBook Pro M2 with an external monitor)

- Native Bridge integrations can only accept colour inputs in `#RRGGBB` and `#AARRGGBB` formats

0 comments on commit 15cad68

Please sign in to comment.