Ecosystem SysPack 2.5.0
July 25th 2024
This version of the Ecosystem Syspack introduces several enhancements and new features:
- A new utilities client script library for improved navigation in single-page application mode.
- Refined logging capabilities.
- Additional options for media components.
- Expanded integrations with FaceTec services.
- New features for Onfido identity validation.
To install the Ecosystem SysPack, you need to have the DCS Services 2.4.0 and SysPack 24.0.1 installed.
Mandatory Changes
Starting with this release, you must use the new FTOS.ECOS.Utils utilities client script library instead of FTOS.DFP when adding processors to a digital journey.
var dfpHelper = ebs.importClientScript('FTOS.ECOS.Utils');
dfpHelper.loadComponent(componentName, processorSettingsId, recordId, true);
If you are using custom processor steps, replace the FTOS.DFP client script library with the following code:
function loadComponent(componentName, processorSettings, recordId, existingFile) {
var parameters = {};
parameters.componentName = componentName;
ebs.callActionByNameAsync("FTOS_DFP_ComponentName_GetByQueryEndpoint", { parameters: parameters }).then(function (e) {
if (e.UIResult.Data.results.length > 0) {
var customActionId = e.UIResult.Data.results[0].a_customActionid;
$export.fetchSettings(processorSettings, recordId, existingFile, customActionId);
} else {
ebs.showMessage('The requested component ' + componentName + ' doesn\'t exist!', 'warning');
}
});
}
function fetchSettings(processorSettings, recordId, existingFile, customActionid) {
var processorSettingsId;
var processorSettingsName = processorSettings.processorSettingsName;;
ebs.callActionByNameAsync("FTOS_DFP_FlowProcessorSettingsByType", processorSettings).then(function (e) {
var settings, mappings;
if (e.UIResult.Data && e.UIResult.Data.settings) {
settings = e.UIResult.Data.settings;
mappings = e.UIResult.Data.mapping;
processorSettingsId = e.UIResult.Data.ProcessorSettingsId;
}
if (processorSettingsId){
$export.setSessionParams(processorSettingsId, processorSettingsName, settings, mappings, recordId, existingFile, function () {
var routeData = {
"customActionId": customActionid
}
$export.navigate(routeData);
});
} else {
ebs.showMessage('The requested processor setting ' + processorSettings + ' doesn\'t exist!', 'warning');
}
});
}
function setSessionParams(processorSettingsId, processorSettingsName, settings, mappings, recordId, existingFile, callback) {
var sessionParam = {};
var settingsObj = JSON.parse(settings);
var mappingsObj = JSON.parse(mappings);
sessionParam.settings = settingsObj;
sessionParam.mappings = mappingsObj;
sessionParam.settings.CustomUI = settings.CustomUI;
sessionParam.processorSettingId = processorSettingsId;
sessionParam.processorSettingsName = processorSettingsName;
sessionParam.recordId = recordId;
sessionParam.existingFile = existingFile;
sessionStorage.removeItem("sessionParameters");
sessionStorage.setItem("sessionParameters", JSON.stringify(sessionParam));
callback();
}
A new dedicated FaceTec package brings better FaceTec integration, allowing you to take advantage of the extended FaceTec Services.
As a good practice, if you install the FaceTec package, it is recommended to start using the new livenessCheck parameter for liveness detection instead of the isLiveness: true parameter, in case it is discontinued in the future.
What's New
Utilities Client Script Library
In FintechOS Platform v.24, the FTOS.DFP client script library was causing navigation issues in single-page application mode. To address this, a new client script library called FTOS.ECOS.Utils has been introduced:
- The new
navigatefunction allows you to always navigate to the desired record. The function checks if you can use the ebs.goToRoute function (for platform versions greater than 22) or ebs.goToUrl respectively and calculates the correct URL automatically. - The
loadComponentfunction no longer computes the URLs for step success/fail to replace them in the session storage settings parameter. This change allows thenavigatefunction to use the data from the processor settings directly (you can add as many URLs as you need in your journey and call them using thenavigatefunction).
Logging
To better control logging behavior, the following settings properties have been added to all processors:
DisableLogSDKMessages- Set this property totrueif you do not wish to retain SDK logs.LogLevel- Controls the minimum severity level for the logged messages. Set it toerrorto capture only SDK errors or todebugto include all SDK log messages.DisableSaveBrowserDetails- Set this property totrueto prevent storage of user platform details in the FTOS_DFP_Logging entity.
Additionally, log context properties have been added for each component, allowing you to filter log messages by processor.
Media Component
The UserMediaComponent class has new properties to control the size, quality, and MIME type for media files:
mime- Specifies the image format. Allowed values are: "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff", "image/webp". The default value is "image/jpeg".quality- Determines the image quality for formats that support lossy compression (such as image/jpeg or image/webp). The quality level is represented by a number between 0 and 1, with a default value of 0.9 if not specified or if the number is outside the allowed range.keepPhotoOriginalSize- When set totrue, snapshots retain their original size as captured by the user's camera, scaled based on DPI and minus helper, if used. The default value istrue.size- Specifies the maximum size of snapshots or uploaded photos. Allowed values are "low", "medium", "high", "l", "xl", "xxl". IfkeepPhotoOriginalSizeis set totrue, this property only applies to uploaded images, keeping snapshots at their original size (minus helper, if used), which may be scaled based on DPI.
FaceTec Services
New integrations with FaceTec services are available.
You can use the livenessCheck parameter in the Face Recognition processor settings to choose between multiple liveness detection methods:
Liveness3D- Equivalent to the legacy liveness detection set up via the deprecatedisLiveness: trueproperty (see Mandatory Changes). It uses a 3D representation of the face constructed from 2D images.Liveness2D- Simplified liveness detection based only on 2D images.IDScanOnly- Doesn't perform a liveness check. This converts the Face Recognition processor into an OCR processor (with standard OCR settings and mappings).PhotoIdMatching- Performs an automatic liveness 3D detection followed by ID Scan and Match.Enrollment- Uses liveness 3D detection to provide a reference ID for future checks. This is useful for advanced flow customizations, e.g. where the liveness detection and ID check are separated by multiple steps.
Use the livenessMatch parameter to set the service provider for face recognition comparison to either Microsoft or FaceTec.
You can provide audio guidance for your FaceTec liveness detection journeys by setting the livenessAudio parameter to a numeric value between 0 (for minimal guidance) and 1 (for full guidance). To customize the audio files, overwrite the Vocal_Guidance_Audio_Files folder, but do not change the file names.
For more information, see the Automation Blocks documentation.
Onfido
The Onfido settings include new parameters for cross-device linking, branding, and custom documents:
crossDevicePolicy- Set todisableto allow image uploads from the current device, orforceto always redirect the user to a device with a camera for a live photo._crossDeviceLinkMethods- Choose how the secondary device should link to the primary device:qr_code,copy_link, orsms.enterpriseFeatures- Allows you to hide or replace the Onfido logo, or display custom text instead.GenericDocumentTypes- Allows you to set up custom documents for scanning, supporting one or more pages.
Face Recognition and OCR Custom Journeys
A Retry button is now displayed if the camera fails to start.
Video Streaming
The minimum supported resolution has been lowered to 320 x 240 pixels.
Example Use Cases
New form driven flows and flow settings have been added to illustrate the above features.