# Table of Contents - [Oz Liveness and Biometry Key Concepts | Oz Knowledge](#oz-liveness-and-biometry-key-concepts-oz-knowledge) - [Solution Architecture | Oz Knowledge](#solution-architecture-oz-knowledge) - [Passive and Active Liveness | Oz Knowledge](#passive-and-active-liveness-oz-knowledge) - [SaaS, On-premise, On-device: What to Choose | Oz Knowledge](#saas-on-premise-on-device-what-to-choose-oz-knowledge) - [Server-Based Liveness | Oz Knowledge](#server-based-liveness-oz-knowledge) - [On-Device Liveness | Oz Knowledge](#on-device-liveness-oz-knowledge) - [Liveness, Face Matching, Collection Checks | Oz Knowledge](#liveness-face-matching-collection-checks-oz-knowledge) - [Oz API Key Concepts | Oz Knowledge](#oz-api-key-concepts-oz-knowledge) - [Proprietary Format: OzCapsula Data Container | Oz Knowledge](#proprietary-format-ozcapsula-data-container-oz-knowledge) - [Oz Licensing Options | Oz Knowledge](#oz-licensing-options-oz-knowledge) - [Integration Quick Start Guides | Oz Knowledge](#integration-quick-start-guides-oz-knowledge) - [Face Matching | Oz Knowledge](#face-matching-oz-knowledge) - [How to Integrate Server-Based Liveness into Your Mobile Application | Oz Knowledge](#how-to-integrate-server-based-liveness-into-your-mobile-application-oz-knowledge) - [How to Integrate Server-Based Liveness into Your Web Application | Oz Knowledge](#how-to-integrate-server-based-liveness-into-your-web-application-oz-knowledge) - [API | Oz Knowledge](#api-oz-knowledge) - [Instant API: Non-Persistent Mode | Oz Knowledge](#instant-api-non-persistent-mode-oz-knowledge) - [Authentication and Non-Instant Data Handling | Oz Knowledge](#authentication-and-non-instant-data-handling-oz-knowledge) - [General Security Recommendations | Oz Knowledge](#general-security-recommendations-oz-knowledge) - [Developer Guide | Oz Knowledge](#developer-guide-oz-knowledge) - [SDK | Oz Knowledge](#sdk-oz-knowledge) - [Changelog | Oz Knowledge](#changelog-oz-knowledge) - [Statuses in API | Oz Knowledge](#statuses-in-api-oz-knowledge) - [Oz API | Oz Knowledge](#oz-api-oz-knowledge) - [How to Integrate On-Device Liveness into Your Mobile Application | Oz Knowledge](#how-to-integrate-on-device-liveness-into-your-mobile-application-oz-knowledge) - [Single Request | Oz Knowledge](#single-request-oz-knowledge) - [iOS | Oz Knowledge](#ios-oz-knowledge) - [User Guide | Oz Knowledge](#user-guide-oz-knowledge) - [Metadata | Oz Knowledge](#metadata-oz-knowledge) - [OzCapsula Data Container | Oz Knowledge](#ozcapsula-data-container-oz-knowledge) - [Flutter | Oz Knowledge](#flutter-oz-knowledge) - [Oz Mobile SDK (iOS, Android, Flutter) | Oz Knowledge](#oz-mobile-sdk-ios-android-flutter-oz-knowledge) - [Basic Scenarios | Oz Knowledge](#basic-scenarios-oz-knowledge) - [Administrator Guide | Oz Knowledge](#administrator-guide-oz-knowledge) - [Oz API Lite | Oz Knowledge](#oz-api-lite-oz-knowledge) - [Installation in Docker | Oz Knowledge](#installation-in-docker-oz-knowledge) - [How to Add Face Matching of Liveness Video with a Reference Photo From Your Database | Oz Knowledge](#how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database-oz-knowledge) - [How to Add Photo ID Capture and Face Matching to Your Web or Mobile Application | Oz Knowledge](#how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application-oz-knowledge) - [API Error Codes | Oz Knowledge](#api-error-codes-oz-knowledge) - [Android | Oz Knowledge](#android-oz-knowledge) - [iOS | Oz Knowledge](#ios-oz-knowledge) - [Oz SDK Media Quality Checks | Oz Knowledge](#oz-sdk-media-quality-checks-oz-knowledge) - [Media Quality Requirements | Oz Knowledge](#media-quality-requirements-oz-knowledge) - [Compatibility | Oz Knowledge](#compatibility-oz-knowledge) - [Media Tags | Oz Knowledge](#media-tags-oz-knowledge) - [Rules of Assigning Analyses | Oz Knowledge](#rules-of-assigning-analyses-oz-knowledge) - [Migration to OzCapsula | Oz Knowledge](#migration-to-ozcapsula-oz-knowledge) - [Deployment Architecture | Oz Knowledge](#deployment-architecture-oz-knowledge) - [Web Plugin (Web SDK Frontend part) | Oz Knowledge](#web-plugin-web-sdk-frontend-part-oz-knowledge) - [System Objects | Oz Knowledge](#system-objects-oz-knowledge) - [Hybrid Liveness | Oz Knowledge](#hybrid-liveness-oz-knowledge) - [Installation and Licensing | Oz Knowledge](#installation-and-licensing-oz-knowledge) - [Oz API Lite Postman Collection | Oz Knowledge](#oz-api-lite-postman-collection-oz-knowledge) - [Server Configuration via Environment Variables | Oz Knowledge](#server-configuration-via-environment-variables-oz-knowledge) - [Types of Analyses and What They Check | Oz Knowledge](#types-of-analyses-and-what-they-check-oz-knowledge) - [User Guides | Oz Knowledge](#user-guides-oz-knowledge) - [Tips and Tricks | Oz Knowledge](#tips-and-tricks-oz-knowledge) - [Oz API Postman Collections | Oz Knowledge](#oz-api-postman-collections-oz-knowledge) - [Oz Web UI | Oz Knowledge](#oz-web-ui-oz-knowledge) - [Using OzCapsula Data Container in Web SDK | Oz Knowledge](#using-ozcapsula-data-container-in-web-sdk-oz-knowledge) - [Android: Certificate Validation Error | Oz Knowledge](#android-certificate-validation-error-oz-knowledge) - [Oz Liveness Web SDK | Oz Knowledge](#oz-liveness-web-sdk-oz-knowledge) - [Settings | Oz Knowledge](#settings-oz-knowledge) - [Web UI | Oz Knowledge](#web-ui-oz-knowledge) - [Mobile SDK | Oz Knowledge](#mobile-sdk-oz-knowledge) - [Previous Documentation | Oz Knowledge](#previous-documentation-oz-knowledge) - [Android | Oz Knowledge](#android-oz-knowledge) - [Media File Size Overview | Oz Knowledge](#media-file-size-overview-oz-knowledge) - [Requesting Analyses | Oz Knowledge](#requesting-analyses-oz-knowledge) - [Configuration Using Environment Variables | Oz Knowledge](#configuration-using-environment-variables-oz-knowledge) - [Web Adapter (Web SDK Backend) Configuration | Oz Knowledge](#web-adapter-web-sdk-backend-configuration-oz-knowledge) - [License Server | Oz Knowledge](#license-server-oz-knowledge) - [Security Recommendations | Oz Knowledge](#security-recommendations-oz-knowledge) - [Sudo without Password | Oz Knowledge](#sudo-without-password-oz-knowledge) - [Publishing API Methods in the Internet: Security Recommendations | Oz Knowledge](#publishing-api-methods-in-the-internet-security-recommendations-oz-knowledge) - [Oz Liveness Gestures: Table of Correspondence | Oz Knowledge](#oz-liveness-gestures-table-of-correspondence-oz-knowledge) - [Uploading and Analyzing Media | Oz Knowledge](#uploading-and-analyzing-media-oz-knowledge) - [Changelog | Oz Knowledge](#changelog-oz-knowledge) - [Oz Modules Installation | Oz Knowledge](#oz-modules-installation-oz-knowledge) - [Privacy Policy: Biometry and Liveness | Oz Knowledge](#privacy-policy-biometry-and-liveness-oz-knowledge) - [Responsible Disclosure Policy | Oz Knowledge](#responsible-disclosure-policy-oz-knowledge) - [Using OzCapsula Data Container in Native SDK | Oz Knowledge](#using-ozcapsula-data-container-in-native-sdk-oz-knowledge) - [Users and Companies | Oz Knowledge](#users-and-companies-oz-knowledge) - [Oz System Lite | Oz Knowledge](#oz-system-lite-oz-knowledge) - [Privacy Policy: Oz Demo Application and Web Demo | Oz Knowledge](#privacy-policy-oz-demo-application-and-web-demo-oz-knowledge) - [Interactions with the Oz API Server | Oz Knowledge](#interactions-with-the-oz-api-server-oz-knowledge) - [Analysis report | Oz Knowledge](#analysis-report-oz-knowledge) - [Oz Demo Kit | Oz Knowledge](#oz-demo-kit-oz-knowledge) - [Performance and Scalability Guide | Oz Knowledge](#performance-and-scalability-guide-oz-knowledge) - [Oz API Configuration | Oz Knowledge](#oz-api-configuration-oz-knowledge) - [Configuration File Settings | Oz Knowledge](#configuration-file-settings-oz-knowledge) - [Cookie Policy | Oz Knowledge](#cookie-policy-oz-knowledge) - [Website Privacy Policy | Oz Knowledge](#website-privacy-policy-oz-knowledge) - [Collection | Oz Knowledge](#collection-oz-knowledge) - [FAQ | Oz Knowledge](#faq-oz-knowledge) - [Uploading and Analyzing Media | Oz Knowledge](#uploading-and-analyzing-media-oz-knowledge) - [Statistics | Oz Knowledge](#statistics-oz-knowledge) - [Installation in Kubernetes | Oz Knowledge](#installation-in-kubernetes-oz-knowledge) - [Changelog | Oz Knowledge](#changelog-oz-knowledge) - [User Roles | Oz Knowledge](#user-roles-oz-knowledge) - [Changelog | Oz Knowledge](#changelog-oz-knowledge) - [Monitoring | Oz Knowledge](#monitoring-oz-knowledge) - [Standalone Installer | Oz Knowledge](#standalone-installer-oz-knowledge) - [API Lite Methods | Oz Knowledge](#api-lite-methods-oz-knowledge) - [How to Check Your Media for Liveness without Oz Front End | Oz Knowledge](#how-to-check-your-media-for-liveness-without-oz-front-end-oz-knowledge) - [Email Protection | Cloudflare](#email-protection-cloudflare) --- # Oz Liveness and Biometry Key Concepts | Oz Knowledge Oz Forensics specializes in liveness and face matching: we develop products that help you to identify your clients remotely and avoid any kind of spoofing or deepfake attack. Oz software helps you to add facial recognition to your software systems and products. You can integrate Oz modules in many ways depending on your needs. We are constantly improving our components, increasing their quality. [hashtag](https://doc.ozforensics.com/oz-knowledge#oz-liveness) Oz Liveness -------------------------------------------------------------------------------- * Oz Liveness is responsible for recognizing a living person on a video it receives. Oz Liveness can distinguish a real human from their photo, video, mask, or other kinds of spoofing and deepfake attacks. The accuracy of our algorithms is confirmed by BixeLab, the independent biometric testing laboratory. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FrAVyBXLOJRysyNAOPk1b%252Fiad%2520mob.png%3Falt%3Dmedia%26token%3D18104402-c899-4772-b702-6dd8c1115ba4&width=768&dpr=3&quality=100&sign=13e89343&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FXi5lsgRU5PQZTYTwVVNn%252Fpad%2520mob%25201.png%3Falt%3Dmedia%26token%3D796ab152-fae1-43dd-b2f2-0e5f7178d325&width=768&dpr=3&quality=100&sign=3cdbc433&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FiOgV97dJsvd36ygPW5cM%252Fpad%2520mob%25202.png%3Falt%3Dmedia%26token%3D991c14c0-a430-4a43-8a2c-1de4fe09cb78&width=768&dpr=3&quality=100&sign=9e9130c6&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FRtU11LcHlUzb6Vm7iYNM%252Fiad%2520web.png%3Falt%3Dmedia%26token%3Da24f9416-26f4-4927-b717-da9d16e98bce&width=768&dpr=3&quality=100&sign=e62d4844&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FbdxoFJ5vVXdld3aP0vzG%252Fpad%2520web%25201.png%3Falt%3Dmedia%26token%3Db2c5bd72-82fc-47dc-b4ec-f1c4fc713197&width=768&dpr=3&quality=100&sign=be0204e4&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F7tpi4oXNJj61CSIaygel%252Fpad%2520web%25202.png%3Falt%3Dmedia%26token%3Dc6706645-394f-4856-9c5d-0880cee906b2&width=768&dpr=3&quality=100&sign=b649b759&sv=2) Here are the confirmation letters from the laboratory: file-pdf 241KB [Confirmation Letter PAD.pdf](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2F0Q9JPPUCCIBgEte6W525%2FConfirmation%20Letter%20PAD.pdf?alt=media&token=e452681b-f3aa-4d8d-9f5f-7044cb5d4235) PDF downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2F0Q9JPPUCCIBgEte6W525%2FConfirmation%20Letter%20PAD.pdf?alt=media&token=e452681b-f3aa-4d8d-9f5f-7044cb5d4235) file-pdf 259KB [Confirmation Letter IAD.pdf](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FHJ0hvlLlwp2EP1VlnTDJ%2FConfirmation%20Letter%20IAD.pdf?alt=media&token=2e68e211-fa6b-4a44-85d8-f45d1b8f065f) PDF downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FHJ0hvlLlwp2EP1VlnTDJ%2FConfirmation%20Letter%20IAD.pdf?alt=media&token=2e68e211-fa6b-4a44-85d8-f45d1b8f065f) Oz Liveness is also certified by NIST accreditation iBeta biometric test laboratory with 100% accuracy. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fjc28KwKH6sti6cCCkiUK%252FCOMPLIANT%2520ISO%252030107-3%2520-%2520LEVEL%25201%2520-%2520High%2520Rez.png%3Falt%3Dmedia%26token%3D98e99a08-7f95-4116-a7be-4f7cfcada49c&width=768&dpr=3&quality=100&sign=bbdc78b4&sv=2) [iBeta Level 1arrow-up-right](https://ozforensics.com/wp-content/uploads/2023/10/20210225_Oz_Forensics_PAD_Level_1_Conformance_Letter.pdf) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FBHalvI6GjaL4Yl1gO4RN%252FibetaLevel2.png%3Falt%3Dmedia%26token%3Df98457e6-f0f1-46a2-aee7-f02d4dafdbef&width=768&dpr=3&quality=100&sign=9083b15f&sv=2) [iBeta Level 2arrow-up-right](https://ozforensics.com/wp-content/uploads/2023/10/20211202_Oz_Forensics_PAD_Level_2_Conformance_Letter.pdf) Our liveness technology protects both against injection and presentation attacks. The injection attack detection is layered. Our SDK examines user environment to detect potential manipulations: browser, camera, etc. Further on, the deep neural network comes into play to defend against even the most sophisticated injection attacks. The presentation attack detection is based on deep neural networks of various architectures, combined with a proprietary ensembling algorithm to achieve optimal performance. The networks consider multiple factors, including reflection, focus, background scene, motion patterns, etc. We offer both passive (no gestures) and active (various gestures) [Liveness options](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness) , ensuring that your customers enjoy the user experience while delivering accurate results for you. The iBeta test was conducted using passive Liveness, and since then, we have significantly enhanced our networks to better meet the needs of our clients. [hashtag](https://doc.ozforensics.com/oz-knowledge#oz-face-matching-biometry) Oz Face Matching (Biometry) -------------------------------------------------------------------------------------------------------------- * Oz Face Matching (Biometry) aims to identify the person, verifying that the person who performs the check and the papers' owner are the same person. Oz Biometry looks through the video, finds the best shot where the person is clearly seen, and compares it with the photo from ID or another document. The algorithm's accuracy is 99.99% confirmed by NIST FRVT. Our biometry technology has both 1:1 Face Verification and 1:N Face Identification, which are also based on ML algorithms. To train our neural networks, we use an own framework based on state-of-the-art technologies. The large private dataset (over 4.5 million unique faces) with a wide representation of ethnic groups as well as using other attributes (predicted race, age, etc.) helps our biometric models to provide the robust matching scores. Our face detector can work with photos and videos. Also, the face detector excels in detecting faces in images of IDs and passports (which can be rotated or of low quality). The Oz software combines accuracy in analysis with ease of integration and use. To further simplify the integration process, we have provided a detailed description of all the key concepts of our system in this section. If you're ready to get started, please refer to our [integration guides](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides) , which provide the step-by-step instructions on how to achieve your facial recognition goals quickly and easily. Oz Forensics adheres to SOC 2® and ISO/IEC 27001:2022 standards. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FwuKYi2RsUNssdo4JWHHG%252FA_LIGN_badge_SOC_2.png%3Falt%3Dmedia%26token%3D4318579d-6a84-46eb-ba28-af5d1686740a&width=768&dpr=3&quality=100&sign=2e48b1ce&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FKK4gzhS21cuv9qjWOIU5%252FA_LIGN_badge_ISO_27001.png%3Falt%3Dmedia%26token%3D57569dc0-4890-4509-8c95-6e970e099f1c&width=768&dpr=3&quality=100&sign=ff948468&sv=2) [NextSolution Architecturechevron-right](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info) Last updated 3 months ago Was this helpful? --- # Solution Architecture | Oz Knowledge This article describes Oz components that can be integrated into your infrastructure in various combinations depending on your needs. The typical integration scenarios are described in the [Integration Quick Start Guides](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides) section. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fa8vKslgA3Sz7dVUpB0NA%252FScreenshot_73.png%3Falt%3Dmedia%26token%3D39c52442-81ba-4d21-b7f4-898b3253a05c&width=768&dpr=3&quality=100&sign=b0ae0ebe&sv=2) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info#oz-api) Oz API Oz API is the central component of the system. It provides RESTful application programming interface to the core functionality of Liveness and Face matching analyses, along with many important supplemental features: * Persistence: your media and analyses are stored for future reference unless you explicitly delete them, * Authentication, roles and access management, * Asynchronous analyses, * Ability to work with videos as well as images. For more information, please refer to [Oz API Key Concepts](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts) and [Oz API Developer Guide](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) . To test Oz API, please check the Postman collection [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections) . Under the logical hood, Oz API has the following components: * File storage and database where media, analyses, and other data are stored, * The Oz BIO module that runs neural network models to perform facial biometry magic, * Licensing logic. The front-end components (Oz Liveness Mobile or Web SDK) connect to Oz API to perform server-side analyses either directly or via customer's back end. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info#ios-and-android-sdk) iOS and Android SDK iOS and Android SDK are collectively referred to as Mobile SDKs or Native SDKs. They are written on Swift and Kotlin/Java, respectively, and designed to be integrated into your native mobile application. Mobile SDKs implement the out-of-the-box customizable user interface for capturing Liveness video and ensure that the two main objectives are met: * The capture process is smooth for users, * The quality of a video is optimal for the subsequent Liveness analysis. After Liveness video is recorded and available to your mobile application, you can run the server-side analysis. You can use corresponding SDK methods, call the API directly from your mobile application, or pass the media to your backend and interact with Oz API from there. The basic integration option is described in the [Quick Start Guide](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) . Mobile SDKs are also capable of On-device Liveness and Face matching. On-device analyses may be a good option in low-risk context, or when you don’t want the media to leave the users’ smartphones. Oz API is not required for On-device analyses. To learn how it works, please refer to this [Integration Quick Start Guide](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness) . circle-info We recommend using server-based analyses whenever possible, as on-device ones tend to produce less accurate results. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info#web-sdk) Web SDK Web Adapter and Web Plugin together constitute Web SDK. Web SDK is designed to be integrated into your web applications and have the same main goals as Mobile SDKs: * The capture process is smooth for users, * The quality of a video is optimal for the subsequent Liveness analysis. Web Adapter needs to be set up on a server side. Web Plugin is called by your web application and works in a browser context. It communicates with Web Adapter, which, in turn, communicates with Oz API. Web SDK adds the two-layer protection against injection attacks: 1. Collects information about browser context and camera properties to detect usage of virtual cameras or other injection methods. 2. Records liveness video in a format that allows server-side neural networks to search for traces of injection attack in the video itself. Check the [Integration Quick Start Guide](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) for the basic integration scenario, and explore the [Web SDK Developer Guide](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk) for more details. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info#web-ui-web-console) Web UI (Web Console) Web UI is a convenient user interface that allows to explore the stored API data in the easy way. It relies on API authentication and database and does not store any data on its own. Web console has an intuitive interface, yet the user guide is available [here](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui) . [PreviousOz Liveness and Biometry Key Conceptschevron-left](https://doc.ozforensics.com/oz-knowledge) [NextLiveness, Face Matching, Collection Checkschevron-right](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks) Last updated 3 months ago Was this helpful? * [Oz API](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info#oz-api) * [iOS and Android SDK](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info#ios-and-android-sdk) * [Web SDK](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info#web-sdk) * [Web UI (Web Console)](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info#web-ui-web-console) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Passive and Active Liveness | Oz Knowledge The objective of the Liveness check is to verify the authenticity and physical presence of an individual in front of the camera. In the **passive Liveness** check, it is sufficient to capture a user's face while they look into the camera. Conversely, the **active Liveness** check requires the user to perform an action such as smiling, blinking, or turning their head. While passive Liveness is more user-friendly, active Liveness may be necessary in some situations to confirm that the user is aware of undergoing the Liveness check. In our Mobile or Web SDKs, you can define what action the user is required to do. You can also combine several actions into a sequence. Actions vary in the following dimensions: * User experience, * File size, * Liveness check accuracy, * Suitability for review by a human operator or in court. In most cases, the **Selfie** action is optimal, but you can choose other actions based on your specific needs. Here is a summary of available actions: ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#passive-liveness) Passive Liveness * **Selfie** **A short video, around 0.7 sec. Users are not required to do anything.** Recommended for most cases. It offers the best combination of user experience and liveness check accuracy. * **One shot** **Similar to “Simple selfie” but only one image is chosen instead of the whole video.** Recommended when media size is the most important factor. Hard to evaluate for a spoofing by a human, e.g., by an operator or in a court. We recommend avoiding the one shot gesture whenever possible, as it tends to produce less accurate results. * **Scan** **A 5-second video where a user is asked to follow the text looking at it.** Recommended when the longer video is required, e.g., for subsequent review by a human operator or in a court. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#active-liveness) Active Liveness * **Smile** * **Blink** * **Tilt head up** * **Tilt head down** * **Turn head left** * **Turn head right** **A user is required to complete a particular gesture within 5 seconds.** Use active liveness when you need a confirmation that the user is aware of undergoing a Liveness check. Video length and file size may vary depending on how soon a user completes a gesture. To recognize the actions from either passive or active Liveness, our algorithms refer to the corresponding tags. These tags indicate the type of action that a user is performing within a media. For more information, please read the [Media Tags](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags) article. The detailed information on how the actions, or, in other words, gestures are called in different Oz Liveness components is [here](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/oz-liveness-gestures-table-of-correspondence) . [PreviousLiveness, Face Matching, Collection Checkschevron-left](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks) [NextOz API Key Conceptschevron-right](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts) Last updated 3 months ago Was this helpful? * [Passive Liveness](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#passive-liveness) * [Active Liveness](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#active-liveness) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # SaaS, On-premise, On-device: What to Choose | Oz Knowledge We offer different usage models for the Oz software to meet your specific needs. You can either utilize the software as a service from one of our cloud instances or integrate it into your existing infrastructure. Regardless of the usage model you choose, all Oz modules will function equally. It’s only up to you what to pick, depending on your needs. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose#when-to-choose-saas) When to Choose SaaS With the SaaS model, you can access one of our clouds without having to install our software in your own infrastructure. Choose SaaS when you want: * **Faster start** as you don’t need to procure or allocate hardware within your company and set up a new instance. * **Zero infrastructure cost** as server components are located in Oz cloud. * **Lower maintenance cost** as Oz maintains and upgrades server components. * **No cross-border data transfer** for the regions where Oz has cloud instances. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose#when-to-choose-on-premise) When to Choose On-Premise The on-premise model implies that all the Oz components required are installed within your infrastructure. Choose on-premise for: * Your data not leaving your infrastructure. * Full and detailed control over the configuration. chevron-rightExpand this section to check the minimum hardware requirements[hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose#expand-this-section-to-check-the-minimum-hardware-requirements) **Oz Biometry / Liveness Server** * OS: please check versions [herearrow-up-right](https://doc.ozforensics.com/oz-knowledge/other/compatibility) * CPU: 16 cores * RAM: 32 GB * Disk: 80 GB **Oz API / Web UI / Web SDK Server** * OS: OS: please check versions [herearrow-up-right](https://doc.ozforensics.com/oz-knowledge/other/compatibility) * CPU: 8 cores * RAM: 16 GB * Disk: 300 GB Please check the OS version with our team. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose#when-to-choose-on-device) When to Choose On-Device We also provide an opportunity of using the on-device Liveness and Face matching. This model is available in Mobile SDKs. Consider the on-device option when: * You can’t transmit facial images to any server due to privacy concerns * The network conditions whereon you plan using Oz products are extremely poor. circle-info We recommend using server-based analyses whenever possible, as on-device ones tend to produce less accurate results. The choice is yours to make, but we're always available to provide assistance. [PreviousOz API Key Conceptschevron-left](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts) [NextOz Licensing Optionschevron-right](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options) Last updated 3 months ago Was this helpful? * [When to Choose SaaS](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose#when-to-choose-saas) * [When to Choose On-Premise](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose#when-to-choose-on-premise) * [When to Choose On-Device](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose#when-to-choose-on-device) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Server-Based Liveness | Oz Knowledge In this section, we listed the guides for the server-based liveness check integrations. [How to Integrate Server-Based Liveness into Your Web Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) [How to Integrate Server-Based Liveness into Your Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) [PreviousIntegration Quick Start Guideschevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides) [NextHow to Integrate Server-Based Liveness into Your Web Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # On-Device Liveness | Oz Knowledge In this section, there's a guide for the integration of the on-device liveness check. [How to Integrate On-Device Liveness into Your Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application) circle-info We recommend using server-based analyses whenever possible, as on-device ones tend to produce less accurate results. [PreviousHow to Integrate Server-Based Liveness into Your Mobile Applicationchevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) [NextHow to Integrate On-Device Liveness into Your Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Liveness, Face Matching, Collection Checks | Oz Knowledge This article describes the main types of analyses that Oz software is able to perform. * **Liveness** checks whether a person in a media is a real human. * **Face Matching** examines two or more media to identify similarities between the faces depicted in them. * **Collection** looks for resemblances between an individual featured in a media and individuals in a pre-existing photo database. These analyses are accessible in the Oz API for both SaaS and On-Premise models. Liveness and Face Matching are also offered in the On-Device model. Please visit [this page](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose) to learn more about the usage models. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#liveness) Liveness The Liveness check is important to protect facial recognition from the two types of attacks. > A presentation attack, also known as a spoofing attack, refers to the attempt of an individual to deceive a facial recognition system by presenting into a camera video, photo, or any other type of media that mimics the appearance of a genuine user. These attacks can include the use of realistic masks or make up. > An injection attack is an attempt to deceive a facial recognition system by replacing physical camera input with a prerecorded image or video, manipulating physical camera output before it becomes input to a facial recognition, or injectiong some malicious code. Virtual camera software is the most common tool for injection attacks. Oz Liveness is able to detect both types of attacks. Any component can detect presentation attacks, and for injection attack detection, use Oz Liveness SDK. To learn about how to use Oz components to prevent attacks, check our integration quick start guides: * [How to integrate server-based liveness into your web application](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) , * [How to integrate server-based liveness into your mobile application](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) , * [How to check your media for liveness without Oz front end](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-check-your-media-for-liveness-without-oz-front-end) . Once the Liveness check is finished, you can check both qualitative and quantitative analysis results. chevron-rightResults overview[hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#results-overview) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#qualitative-results) Qualitative results * SUCCESS – everything went fine, the analysis has completed successfully; * DECLINED – the check failed (an attack detected). If the analysis hasn't been finished yet, the result can be PROCESSING (the analysis is in progress) / FAILED (the analysis failed due to some error and couldn't get finished). If you have analyzed multiple media, the aggregated status will be SUCCESS only if each analysis on each media has finished with the SUCCESS result. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#quantitative-results) Quantitative results * 100% (1) – an attack is detected, the person in the video is not a real living person, * 0% (0) – a person in the video is a real living person. Asking users to perform a gesture, such as smiling or turning their head, is a popular requirement when recording a Liveness video. With Oz Liveness Mobile and Web SDK, you can also request gestures from users. However, our Liveness check relies on other factors, analyzed by neural networks, and does not depend on gestures. For more details, please check [Passive and Active Liveness](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness) . Liveness check also can return the best shot from a video: a best-quality frame where the face is seen the most properly. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#face-matching) Face Matching The Biometry algorithm allows comparing several media and check if the people on them are the same person or not. As sources, you can use images, videos, and scans of documents (with photo). To perform the analysis, the algorithm requires at least two media. chevron-rightResults overview[hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#results-overview-1) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#qualitative-results-1) Qualitative results * SUCCESS – everything went fine, the analysis has completed successfully; * DECLINED – the check failed (faces don't match). If the analysis hasn't been finished yet, the result can be PROCESSING (the analysis is in progress) / FAILED (the analysis failed due to some error and couldn't get finished). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#quantitative-results-1) Quantitative results After comparison, the algorithm provides numbers that represent the similarity level. The numbers vary from 100 to 0% (1 to 0), where: * 100% (1) – faces are similar, media represent the same person, * 0% (0) – faces are not similar and belong to different people There are two scores to consider: the minimum and maximum. If you have analyzed two media, these scores will be equal. For three or more media, the similarity score is calculated for each pair. Once calculated, these scores get aggregated and analysis returns the minimum and maximum similarity scores for the media compared. Typically, the minimum score is enough. Wonder how to integrate face matching into your processes? Check our [integration quick start guides](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#collection) Collection In Oz API, you can configure one or more face collections. These collections are databases of people depicted in photos. When the Collection analysis is being conducted, Oz software compares the face in a photo or video taken with faces of this pre-made database and shows whether a face exists in a collection. chevron-rightResults overview[hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#results-overview-2) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#qualitative-results-2) Qualitative results * SUCCESS – everything went fine, the analysis has completed successfully; * DECLINED – the check failed (faces match). If the analysis hasn't been finished yet, the result can be PROCESSING (the analysis is in progress) / FAILED (the analysis failed due to some error and couldn't get finished). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#quantitative-results-2) Quantitative results After comparison, the algorithm provides a score that represents the similarity level. The number varies from 100 to 0% (1 to 0), where: * 100% (1) – the person in an image or video matches with someone in your database, * 0% (0) – the person is not found in the collection. For additional information, please refer to [this article](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check) . [PreviousSolution Architecturechevron-left](https://doc.ozforensics.com/oz-knowledge/general/readme/general-info) [NextPassive and Active Livenesschevron-right](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness) Last updated 3 months ago Was this helpful? * [Liveness](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#liveness) * [Face Matching](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#face-matching) * [Collection](https://doc.ozforensics.com/oz-knowledge/general/readme/liveness-face-matching-black-list-checks#collection) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz API Key Concepts | Oz Knowledge The Oz API is a comprehensive Rest API that enables facial biometrics, allowing for both face matching and liveness checks. This write-up provides an overview of the essential concepts that one should keep in mind while using the Oz API. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts#authentication-roles-and-access-management) Authentication, Roles, and Access Management To ensure security, every Oz API call requires an access token in its HTTP headers. To obtain this token, execute the `POST /api/authorize/auth` method with login and password provided by us. Pass this token in `X-Forensics-Access-Token` header in subsequent Oz API calls. [This article](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/authentication) provides comprehensive details on the authentication process. Kindly refer to it for further information. Furthermore, the Oz API offers distinct user roles, ranging from `CLIENT`, who can perform checks and access reports but lacks administrative rights, e.g., deleting folders, to `ADMIN`, who enjoys nearly unrestricted access to all system objects. For additional information, please consult [this guide](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts#persistence) Persistence The unit of work in Oz API is a **folder**: you can upload interrelated media to a folder, run analyses on them, and check for the aggregated result. A folder can contain the unlimited number of media, and each of the media can be a target of several analyses. Also, analyses can be performed on a bunch of media. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FJxx0asFR031C1M1KYPuo%252Fer%2520api%2520basics%2520New.drawio%2520%281%29.png%3Falt%3Dmedia%26token%3D51156a9a-3ca2-447c-a901-8fbee730f6b0&width=768&dpr=3&quality=100&sign=82c7d03f&sv=2) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts#media-types-and-tags) Media Types and Tags Media OZ API works with photos and videos. Video can be either a regular video container, e.g., MP4 or MOV, or a ZIP archive with a sequence of images. Oz API uses the file mime type to define whether media is an image, a video, or a shot set. It is also important to determine the semantics of a content, e.g., if an image is a photo of a document or a selfie of a person. This is achieved by using tags. The selection of tags impacts whether specific types of analyses will recognize or ignore particular media files. The most important tags are: * `photo_id_front` – for the front side of a photo ID * `photo_selfie` – for a non-document reference photo * `video_selfie_blank` – for a liveness video recorded beyond Oz Liveness SDK * if a media file is captured using the Oz Liveness SDK, the tags are assigned automatically. The full list of Oz media tags with their explanation and examples can be found [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts#asynchronous-analyses) Asynchronous analyses Since video analysis may take a few seconds, the analyses are performed asynchronously. This implies that you initiate an analysis (`/api/folders/{{folder_id}}/analyses/`) and then monitor the outcomes by polling until processing is complete (`/api/analyses/{{analyse_id}}` for a single analysis or `/api/folders/{{folder_id}}/analyses/` for all folder’s analyses). Alternatively, there is a webhook option available. To see an example of how to use both the polling and webhook options, please check [this guide](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness#processing-steps) . These were the key concepts of Oz API. To gain a deeper understanding of its capabilities, please refer to the [Oz API section](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) of our developer guide. [PreviousPassive and Active Livenesschevron-left](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness) [NextSaaS, On-premise, On-device: What to Choosechevron-right](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose) Last updated 3 months ago Was this helpful? * [Authentication, Roles, and Access Management](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts#authentication-roles-and-access-management) * [Persistence](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts#persistence) * [Media Types and Tags](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts#media-types-and-tags) * [Asynchronous analyses](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-api-key-concepts#asynchronous-analyses) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Proprietary Format: OzCapsula Data Container | Oz Knowledge To improve the overall security level or Oz products, we’ve introduced a new **proprietary data exchange format** that provides improved data confidentiality and integrity: OzCapsula. [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container#how-it-works) How It Works --------------------------------------------------------------------------------------------------------------------------------------------- A proprietary data exchange format is a container that safely stores and transmits transaction-related media data. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FUaMARVfnivG5dPiPIpX2%252Fdata%2520container.drawio.png%3Falt%3Dmedia%26token%3D7c0923c4-0cb6-42ce-9bf3-9fdb39cd72ed&width=768&dpr=3&quality=100&sign=be702fa9&sv=2) When you capture video using Oz SDK, your media is placed into the OzCapsula container along with all required information. The package can be processed only in Oz API due to internal mechanisms, so it is significantly more difficult to access the package containing. circle-info Please note: we do not disclose specific technical details for security reasons. [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container#benefits) Benefits ------------------------------------------------------------------------------------------------------------------------------------- * **Integrity and Authenticity Guaranteed**. Each container’s content is verified by the API, ensuring data arriving from the user device is genuine, untampered, and fully intact. * **Full Confidentiality of Internal Data**. Multi-layered cryptographic protection keeps all data, metadata, and technical details hidden from unauthorized viewing, extraction, or interpretation. * **Unified Data Package**. All content is stored in a single, secure file, simplifying transmission and enabling consistent, predictable processing. * **Built-In Investigation Tools**. Every action within the container is logged, giving complete visibility for incident analysis and rapid troubleshooting. * **Strict, Built-In Access Control**. Only authorized systems can open or use the container, preventing misuse, tampering attempts, or unauthorized integration. * **Ready for High-Volume Workflows**. The container is designed to scale effortlessly, supporting any number of transmissions without performance or integration issues. [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container#requirements) Requirements --------------------------------------------------------------------------------------------------------------------------------------------- Minimal component versions: * API: **6.4.2**. * Web SDK: **1.9.2**. * Native SDKs: **8.22**. You will also require a new token: `session_token`. [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container#usage) Usage ------------------------------------------------------------------------------------------------------------------------------- circle-info Please note: currently, the container works with [single request mode](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request) only. 1. Configure SDK and API: * [Web SDK](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#configuration-overview) * [API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container) * Native SDK doesn't require additional configuration, you'll just need to use new methods. 2. On your backend, obtain a session token as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#obtaining-a-session-token) to use it on the frontend. 3. Using Oz SDK methods, take a video and package it along with all required data into container: * [Web SDK](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#flow-for-different-architectures) * [Native SDK](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk) 4. Send the container to Oz API using Oz SDK or through your backend (optional) and get the results. [PreviousOz Licensing Optionschevron-left](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options) [NextIntegration Quick Start Guideschevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides) Last updated 1 day ago Was this helpful? * [How It Works](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container#how-it-works) * [Benefits](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container#benefits) * [Requirements](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container#requirements) * [Usage](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container#usage) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz Licensing Options | Oz Knowledge For commercial use of Oz Forensics products, a license is required. The license is time-limited and defines the software access parameters based on the terms of your agreement. Once you initialize mobile SDK, run Web Plugin, or use Oz Bio, the system checks if your license is valid. The check runs in the background and has minimal impact on the user experience. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FVzZCc1GGXth6w0X15o5b%252Fonline%2520lic%2520en.drawio%2520new%2520lock.png%3Falt%3Dmedia%26token%3D4c6f1825-10cd-404c-85f8-e599f31185fb&width=768&dpr=3&quality=100&sign=a59616d0&sv=2) As you can see on the scheme above, the license is required for: * Mobile SDKs for iOS and Android, * Web SDK, which consists of Web Adapter and Web Plugin, * Oz BIO, which is needed for server analyses and is installed for [On-Premise model of use](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose) . For each of the components, you require a separate license which is bound to this component. Thus, if you use all three components, three licenses are required. [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#native-sdks-ios-and-android) Native SDKs (iOS and Android) ------------------------------------------------------------------------------------------------------------------------------------------------------ To issue a license for mobile SDK, we require your bundle (application) ID. There are two types of licenses for iOS and Android SDKs: online and offline. Any license type can be applied to any analysis mode: on-device, server-based, or hybrid. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#online-license) Online License As its name suggests, an online license requires a stable connection. Once you initialize our SDK with this license, it connects to our license server and retrieves information about license parameters, including counters of transactions or devices, where: * Transaction: increments each time you start a video capture. * Device: increments when our SDK is installed on a new device. The online license can be transaction-limited, device-limited, or both, according to your agreement. The main advantages of the online license are: * You don’t need to update your application after the license renewal, * And if you want to add a new bundle ID to the incense, there’s also no need to re-issue it. Everything is done on the fly. The data exchange for the online license is quick, ensuring your users won't experience almost any delay compared to using the offline license. Please note that even though on-device analyses don’t need the Internet themselves, you still require a connection for license verification. circle-exclamation Online license is the default option for Mobile SDKs. If you require the offline license, please inform your manager. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#offline-license) Offline License Offline license is a type of license that can work without Internet. All license parameters are set in the license file, and you just need to add the file to your project. This license type doesn’t have any restrictions on transactions or devices. The main benefit of the offline license is its autonomy, allowing it to function without a network connection. However, when your license expires, and you add a new one, you’ll require to release a new version of your application in Google Play and App Store. Otherwise, the SDK won’t function. How to add a license to mobile SDK: * [Android](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/getting-a-license-for-android-sdk) * [iOS](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/getting-a-license-for-ios-sdk) [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#web-sdk) Web SDK ------------------------------------------------------------------------------------------------------------ Web SDK license is almost similar to the mobile SDK offline license. It can function without network connection, and the license file contains all the necessary parameters, such as expiration date. Web SDK license also has no restrictions on transactions or devices. The license is bound to URLs of your domains and/or subdomains. To add the license to your SDK instance, you need to place it to the Web SDK container as described [here](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing) . In rare cases, it is also possible to [add a license via Web Plugin](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/no-server-licensing) . The difference between Mobile SDK offline license and Web SDK license is that you don’t need to release a new application version when Web SDK license is renewed. [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#on-premise-oz-bio-or-server-license) On-Premise (Oz BIO or Server License) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- For on-premise installations, we offer a dedicated license with a limitation on activations, with each activation representing a separate Oz BIO seat. This license can be online or offline, depending on whether your Oz BIO servers have internet access. The online license is verified through our license server, while for offline licenses, we assist you in [setting up an offline license server](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server) within your infrastructure and activating the license. [hashtag](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#trial) Trial -------------------------------------------------------------------------------------------------------- For test integration purposes, we provide a free trial license that is sufficient for initial use, such as testing with your datasets to check analysis accuracy. For Mobile SDKs, you can generate a one-month license yourself on our website: [click herearrow-up-right](https://ozforensics.com/developers/try_mobile_sdk) . If you would like to integrate with your web application, please [contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#1b72757d745b74617d74697e756872786835787476) to obtain a license, and we will also assist you in configuring your dedicated instance of our Web SDK. With the license, you will receive credentials to access our services. Once you're ready to move to commercial use, a new production license will be issued. We’ll provide you with new production credentials and assist you with integration and configuration. Our engineers are always available to help. Our software offers flexible licensing options to meet your specific needs. Whether you prioritize seamless updates or prefer autonomous operation, we have a solution tailored for you. If you have any questions, please contact us. [PreviousSaaS, On-premise, On-device: What to Choosechevron-left](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose) [NextProprietary Format: OzCapsula Data Containerchevron-right](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container) Last updated 3 months ago Was this helpful? * [Native SDKs (iOS and Android)](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#native-sdks-ios-and-android) * [Online License](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#online-license) * [Offline License](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#offline-license) * [Web SDK](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#web-sdk) * [On-Premise (Oz BIO or Server License)](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#on-premise-oz-bio-or-server-license) * [Trial](https://doc.ozforensics.com/oz-knowledge/general/readme/oz-licensing-options#trial) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Integration Quick Start Guides | Oz Knowledge This section contains the most common cases of integrating the Oz Forensics Liveness and face Biometry system. The scenarios can be combined together, for example, integrating liveness into both web and mobile applications or integrating liveness with face matching. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides#server-based-liveness) Server-Based Liveness: [How to Integrate Server-Based Liveness into Your Web Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) [How to Integrate Server-Based Liveness into Your Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) [How to Check Your Media for Liveness without Oz Front Endchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-check-your-media-for-liveness-without-oz-front-end) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides#on-device-liveness) On-Device Liveness [How to Integrate On-Device Liveness into Your Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides#face-matching) Face Matching [How to Add Face Matching of Liveness Video with a Reference Photo From Your Databasechevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database) [How to Add Photo ID Capture and Face Matching to Your Web or Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application) [PreviousProprietary Format: OzCapsula Data Containerchevron-left](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container) [NextServer-Based Livenesschevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Face Matching | Oz Knowledge In this section, we listed the guides for the face matching checks. circle-exclamation Please note: this section applies to the non-container flow only. [How to Add Face Matching of Liveness Video with a Reference Photo From Your Databasechevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database) [How to Add Photo ID Capture and Face Matching to Your Web or Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application) [PreviousHow to Integrate On-Device Liveness into Your Mobile Applicationchevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application) [NextHow to Add Face Matching of Liveness Video with a Reference Photo From Your Databasechevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database) Last updated 8 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # How to Integrate Server-Based Liveness into Your Mobile Application | Oz Knowledge This guide outlines the steps for integrating the Oz Liveness Mobile SDK into a customer mobile application for capturing facial videos and subsequently analyzing them on the server. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FKlMar9TJtEb7LxADOY8r%252Fmobile%2520scheme.png%3Falt%3Dmedia%26token%3D9984d0e2-6d98-4dde-992e-ca9df87c8a84&width=768&dpr=3&quality=100&sign=dd91b037&sv=2) The SDK implements a ready-to-use face capture user interface that is essential for seamless customer experience and accurate liveness results. The SDK methods for liveness analysis communicate with Oz API under the hood. Before you begin, make sure you have Oz API credentials. When using SaaS API, you get them [from usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#533a3d353c133c29353c21363d203a30207d303c3e) : Login: [\[email protected\]](https://doc.ozforensics.com/cdn-cgi/l/email-protection) Password: … API: https://sandbox.ohio.ozforensics.com Web Console: https://sandbox.ohio.ozforensics.com For the on-premise Oz API, you need to create a user yourself or ask your team that manages the API. See the [guide on user creation via Web Console](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#adding-a-user) . Consider the proper user role (`CLIENT` in most cases or `CLIENT ADMIN`, if you are going to make SDK work with the pre-created folders from other API users). In the end, you need to obtain a similar set of credentials as you would get for the SaaS scenario. We also recommend that you use our logging service called telemetry, as it helps a lot in investigating attacks' details. For Oz API users, the service is enabled by default. For on-premise installations, we'll provide you with credentials. Oz Liveness Mobile SDK requires a license. License is bound to the bundle\_id of your application, e.g., `com.yourcompany.yourapp`. Issue the 1-month trial license [on our websitearrow-up-right](https://ozforensics.com/developers/try_mobile_sdk) or [email usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#563f38303916392c3039243338253f35257835393b) for a long-term license. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#android) Android 1 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#add-sdk-to-your-project) Add SDK to your project In the build.gradle of your project, add: In the build.gradle of the module, add: 2 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#initialize-sdk) Initialize SDK Rename the license file to **forensics.license** and place it into the project's res/raw folder. 3 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#connect-sdk-to-oz-api) Connect SDK to Oz API Use API credentials (login, password, and API URL) that you’ve got from us. In production, instead of hard-coding login and password in the application, it is recommended to get access token on your backend with API [autharrow-up-right](https://apidoc.ozforensics.com/#tag/Authorization/paths/~1api~1authorize~1auth/post) method then pass it to your application: 4 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#add-face-recording) Add face recording To start recording, use `startActivityForResult`: To obtain the captured video, use `onActivityResult`: 5 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#run-analyses) Run analyses To run the analyses, execute the code below. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#ios) iOS 1 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#add-our-sdk-to-your-project) Add our SDK to your project [**CocoaPods**arrow-up-right](https://cocoapods.org/) To integrate OZLivenessSDK into an Xcode project, add to Podfile: **SPM** Add the following package dependencies via SPM: [https://gitlab.com/oz-forensics/oz-mobile-ios-sdkarrow-up-right](https://gitlab.com/oz-forensics/oz-mobile-ios-sdk) (if you need a guide on adding the package dependencies, please refer to the [Apple documentationarrow-up-right](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app) ). **OzLivenessSDK** is mandatory. Skip the **OzLivenessSDKOnDevice** file. 2 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#initialize-sdk-1) Initialize SDK Rename the license file to **forensics.license** and put it into the project. 3 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#connect-sdk-to-oz-api-1) Connect SDK to Oz API Use API credentials (login, password, and API URL) that you’ve got from us. In production, instead of hard-coding the login and password in the application, it is recommended to get an access token on your back end using the API [autharrow-up-right](https://apidoc.ozforensics.com/#tag/Authorization/paths/~1api~1authorize~1auth/post) method, then pass it to your application: 4 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#add-face-recording-1) Add face recording Create a controller that will capture videos as follows: The delegate object must implement the `OZLivenessDelegate` protocol: 5 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#run-analyses-1) Run analyses Use `AnalysisRequestBuilder` to initiate the Liveness analysis. The communication with Oz API is under the hood of the run method. With these steps, you are done with basic integration of Mobile SDKs. You will be able to access recorded media and analysis results in Web Console via browser or programmatically via API. In developer guides, you can also find instructions for customizing the SDK look-and-feel and access the full list of our Mobile SDK methods. Check out the table below: Android [sample apparrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-android) source codes iOS [sample apparrow-up-right](https://gitlab.com/oz-forensics/public/oz-liveness-ios-sample/-/tree/main) source codes Android OzLiveness SDK [Developer Guidearrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android) iOS OzLiveness SDK [Developer Guidearrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios) [Demo apparrow-up-right](https://play.google.com/store/apps/details?id=com.ozforensics.liveness.demo&hl=en) in PlayMarket [Demo apparrow-up-right](https://testflight.apple.com/join/mBbPQqnM) in TestFlight [PreviousHow to Integrate Server-Based Liveness into Your Web Applicationchevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) [NextOn-Device Livenesschevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness) Last updated 21 hours ago Was this helpful? * [Android](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#android) * [Add SDK to your project](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#add-sdk-to-your-project) * [Initialize SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#initialize-sdk) * [Connect SDK to Oz API](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#connect-sdk-to-oz-api) * [Add face recording](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#add-face-recording) * [Run analyses](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#run-analyses) * [iOS](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#ios) * [Add our SDK to your project](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#add-our-sdk-to-your-project) * [Initialize SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#initialize-sdk-1) * [Connect SDK to Oz API](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#connect-sdk-to-oz-api-1) * [Add face recording](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#add-face-recording-1) * [Run analyses](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application#run-analyses-1) Was this helpful? sun-brightdesktopmoon Copy allprojects { repositories { maven { url "https://ozforensics.jfrog.io/artifactory/main" } } } Copy dependencies { implementation 'com.ozforensics.liveness:full:' // You can find the version needed in the Android changelog } Kotlin Copy OzLivenessSDK.init( context, listOf(LicenseSource.LicenseAssetId(R.raw.forensics)) ) Kotlin Copy OzLivenessSDK.setApiConnection( OzConnection.fromCredentials(host, username, password), statusListener( { token -> /* token */ }, { ex -> /* error */ } ) ) Kotlin Copy OzLivenessSDK.setApiConnection(OzConnection.fromServiceToken(host, token)) Kotlin Copy val sessionToken: String = getSessionToken() val captureRequest = CaptureRequest( listOf( AnalysisProfile( Analysis.Type.QUALITY, listOf(MediaRequest.ActionMedia(OzAction.Blank)), ) ) ) val intent = OzLivenessSDK.createMediaCaptureScreen(captureRequest, sessionToken) startActivityForResult(intent, REQUEST_LIVENESS_CONTAINER) Kotlin Copy override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_LIVENESS_CONTAINER) { when (resultCode) { OzLivenessResultCode.SUCCESS -> runAnalysis(OzLivenessSDK.getContainerFromIntent(data)) OzLivenessResultCode.USER_CLOSED_LIVENESS -> { /* user closed the screen */ } else -> { val errorMessage = OzLivenessSDK.getErrorFromIntent(data) /* show error */ } } } } Kotlin Copy private fun runAnalysis(container: DataContainer?) { if (container == null) return AnalysisRequest.Builder() .addContainer(container) .build() .run( { result -> val isSuccess = result.analysisResults.all { it.resolution == Resolution.SUCCESS } }, { /* show error */ }, { /* update status */ }, ) } Copy pod 'OZLivenessSDK', :git => 'https://gitlab.com/oz-forensics/oz-liveness-ios', :tag => '' // You can find the version needed in iOS changelog Copy OZSDK(licenseSources: [.licenseFileName("forensics.license")]) { licenseData, error in if let error = error { print(error.errorDescription) } } Copy OZSDK.setApiConnection(Connection.fromCredentials(host: “https://sandbox.ohio.ozforensics.com”, login: login, password: p)) { (token, error) in // Your code to handle error or token } Copy OZSDK.setApiConnection(Connection.fromServiceToken(host: "https://sandbox.ohio.ozforensics.com", token: token)) { (token, error) in } Copy getSessionToken() { sessionToken in DispatchQueue.main.async { do { let action:OZVerificationMovement = .selfie let mediaRequest = MediaRequest.action(action) let profile = AnalysisProfile(mediaList: [mediaRequest], type: .quality, params: [:] ) let request = CaptureRequest(analysisProfileList: [profile], cameraPosition: .front) let ozLivenessVC = try OZSDK.createMediaCaptureScreen(self, request, sessionToken: sessionToken) self.present(ozLivenessVC, animated: true) } catch let error { print(error.localizedDescription) } } } Copy extension ViewController: LivenessDelegate { func onResult(container: DataContainer) { } func onError(status: OZVerificationStatus?) { } } Copy func onResult(container: DataContainer) { let analysisRequest = AnalysisRequestBuilder() analysisRequest.addContainer(container) analysisRequest.run( statusHandler: { status in }, errorHandler: { error in } ) { result in } } sun-brightdesktopmoon --- # How to Integrate Server-Based Liveness into Your Web Application | Oz Knowledge This guide outlines the steps for integrating the Oz Liveness Web SDK into a customer web application for capturing facial videos and subsequently analyzing them on a server. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FUs2bBO0bIa8bXM2dAa8z%252Fwebsdk-scheme-v8.drawio%2520%281%29.png%3Falt%3Dmedia%26token%3Dffca0d61-2d52-4234-92e3-66f714b0caee&width=768&dpr=3&quality=100&sign=7fed1732&sv=2) The SDK implements the ready-to-use face capture user interface that is essential for seamless customer experience and accurate liveness results. Under the hood, it communicates with Oz API. Oz Liveness Web SDK detects both presentation and injection attacks. An injection attack is an attempt to feed pre-recorded video into the system using a virtual camera. Finally, while the cloud-based service provides the fully-fledged functionality, we also offer an on-premise version with the same functions but no need for sending any data to our cloud. We recommend starting with the SaaS mode and then reconnecting your web app to the on-premise Web Adapter and Oz API to ensure seamless integration between your front end and back end. With these guidelines in mind, integrating the Oz Liveness Web SDK into your web application can be a simple and straightforward process. 1 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application#get-your-web-adapter) Get your Web Adapter Tell us domain names of the pages from which you are going to call Web SDK and email for admin access, e.g.: Domain names from which Web SDK will be called: 1. www.yourbrand.com 2. www.yourbrand2.com Email for admin access: * [\[email protected\]](https://doc.ozforensics.com/cdn-cgi/l/email-protection) In response, you’ll get URLs and credentials for further integration and usage. When using SaaS API, you get them [from usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#7910171f163916031f160b1c170a101a0a571a1614) : Login: [\[email protected\]](https://doc.ozforensics.com/cdn-cgi/l/email-protection) Password: … API: https://sandbox.ohio.ozforensics.com/ Web Console: https://sandbox.ohio.ozforensics.com Web Adapter: https://web-sdk.cdn.sandbox.ozforensics.com/your\_company\_name/ For the on-premise Oz API, you need to create a user yourself or ask your team that manages the API. See the [guide on user creation via Web Console](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#adding-a-user) . Consider the proper user role (`CLIENT` in most cases or `CLIENT ADMIN`, if you are going to make SDK work with the pre-created folders from other API users). In the end, you need to obtain a similar set of credentials as you would get for the SaaS scenario. 2 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application#obtain-a-session-token-from-oz-api) Obtain a session token from Oz API Session token is required for [OzCapsula](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container) functionality. 1. (Optional, only if you use stateful API) Authorize as any non-OPERATOR role. 2. Call `GET {{host}}/api/authorize/session_token`. **Example request** 3 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application#add-web-plugin-to-your-web-pages) Add Web Plugin to your web pages Add the following tags to your HTML code. Use Web Adapter URL received before: 4 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application#implement-your-logic-around-web-plugin) Implement your logic around Web Plugin Add the code that opens the plugin and handles the results. You'll require a session token from step 2. circle-info Keep in mind that it is more secure to get your back end responsible for the decision logic. You can find more details including code samples [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/security-recommendations) . With these steps, you are done with basic integration of Web SDK into your web application. You will be able to access recorded media and analysis results in [Web Console](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui) via browser or programmatically via [API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) (please find the instructions here: [retrieving an MP4 video](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/launching-the-plugin/capturing-video-and-description-of-the-on_capture_complete-callback#please-note) , [getting analysis results](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness) ). In the [Web Plugin Developer Guide,arrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/configuration-and-usage/web-plugin) you can find instructions for common next steps: * Customizing plugin look-and-feel * Adding custom language pack * Tuning plugin behavior * Plugin parameters and callbacks * Security recommendations Please find a sample for Oz Liveness Web SDK [herearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web/-/blob/master/OzLivenessWebSDKSample.html) . To make it work, replace `` with the Web Adapter URL you've received from us. For Angular and React, replace `https://web-sdk.sandbox.ohio.ozforensics.com` in index.html. * [Angular samplearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-angular) * [React samplearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-react/-/tree/main) * [Vuearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-vue) sample * [Sveltearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-svelte) sample [PreviousServer-Based Livenesschevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness) [NextHow to Integrate Server-Based Liveness into Your Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) Last updated 8 days ago Was this helpful? * [Get your Web Adapter](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application#get-your-web-adapter) * [Obtain a session token from Oz API](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application#obtain-a-session-token-from-oz-api) * [Add Web Plugin to your web pages](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application#add-web-plugin-to-your-web-pages) * [Implement your logic around Web Plugin](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application#implement-your-logic-around-web-plugin) Was this helpful? sun-brightdesktopmoon Copy curl -L 'https://{{host}}/api/authorize/session_token' \ -H 'X-Forensic-Access-Token: ' \ -H 'Content-Type: application/json' Copy Copy OzLiveness.open({ session_token, lang: 'en', action: [\ // 'photo_id_front', // request photo ID picture\ 'video_selfie_blank' // request passive liveness video\ ], on_complete: function (result) { // This callback is invoked when the analysis is complete console.log('on_complete', result); } }); sun-brightdesktopmoon --- # API | Oz Knowledge [Oz APIchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) [Oz API Litechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite) [PreviousMigration to OzCapsulachevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula) [NextOz APIchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Instant API: Non-Persistent Mode | Oz Knowledge Instant API, or non-persistent operation mode, has been introduced in API 6.0.1. It is a mode where we do not save any data anywhere. All data is being used only within a request: you send it, receive the response, and that's all, nothing gets recorded. This ensures you do not store any sensitive data, which might be crucial for GDPR compliance. Also, it significantly reduces storage requirements. To enable this mode, when you prepare the config.py file to run the API, set the `OZ_APP_COMPONENTS` parameter to `stateless`. Call `POST /api/instant/folders/` to send the request without saving any data. Authorization for Instant API should be set on your side. circle-info Please note: as Instant API doesn't store data, it is not intended to work with Blacklist (1:N). If you use Instant API with Web SDK, in Web Adapter [configuration](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-file-settings) , set `architecture` to `lite`. The version of Web SDK should be 1.7.14 or above. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#requirements) Requirements ---------------------------------------------------------------------------------------------------------------------------------------------------- * CPU: 16 cores, 32 threads, base frequency – 2.3 GHz, single-core maximum turbo frequency – 4 GHz. * RAM: 32 GB, DDR 5, Dual Channel. To evaluate your RPS and RPM and configure your system for optimal performance, please contact us. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#configuration-file-parameters) Configuration File Parameters -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Prior to the launch, prepare a configuration file with the parameters listed below. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#mandatory-parameters) Mandatory Parameters These parameters are crucial to run Instant API. Copy # application components list, values for Instant API: auth,stateless # auth is for Oz authentication component OZ_APP_COMPONENTS=stateless # local storage support enable OZ_LOCAL_STORAGE_SUPPORT_ENABLE=false # service tfss host OZ_SERVICE_TFSS_HOST=http://xxx.xxx.xxx.xxx:xxxx # allowed hosts APP_ALLOWED_HOSTS=example-host1.com,example-host2.com # secret key OZ_API_SECRET_KEY=long_secret_key [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#installation) Installation ---------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#docker) Docker ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#docker-compose) Docker Compose [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#instant-api-methods) Instant API Methods ------------------------------------------------------------------------------------------------------------------------------------------------------------------ You can find the Instant API methods [herearrow-up-right](https://documenter.getpostman.com/view/28105966/2sB34eJMYC) or download the collection below. file-download 10KB [OZ-Forensic Instant 6.0.0.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2F1tEFwsQZ5bXsKEwm1jv9%2FOZ-Forensic%20Instant%206.0.0.postman_collection.json?alt=media&token=a6986e8b-f785-47d0-a68f-0c4f299fb6e7) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2F1tEFwsQZ5bXsKEwm1jv9%2FOZ-Forensic%20Instant%206.0.0.postman_collection.json?alt=media&token=a6986e8b-f785-47d0-a68f-0c4f299fb6e7) [PreviousOzCapsula Data Containerchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container) [NextSingle Requestchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request) Last updated 3 months ago Was this helpful? * [Requirements](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#requirements) * [Configuration File Parameters](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#configuration-file-parameters) * [Mandatory Parameters](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#mandatory-parameters) * [Installation](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#installation) * [Docker](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#docker) * [Docker Compose](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#docker-compose) * [Instant API Methods](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode#instant-api-methods) Was this helpful? sun-brightdesktopmoon Copy CONTAINER_NAME= \ DEPLOY_INSTANT_PORT_EXT= \ INSTANT_IMAGE= \ ADDITIONAL_PARAMS="-e LICENSE_KEY=" \ docker run -d --name $CONTAINER_NAME $ADDITIONAL_PARAMS -p ${DEPLOY_INSTANT_PORT_EXT}:8080 $INSTANT_IMAGE Copy services: oz-api-instant: image: container_name: oz-api-instant environment: - LICENSE_KEY= # - TF_ENABLE_ONEDNN_OPTS=1 # In some cases, especially for AMD CPUs, set to 0 # - API_LISTEN_PORT=8080 # - LOG_LEVEL=info # ['critical', 'error', 'warning', 'info', 'debug', 'trace'] restart: always ports: - 8080:8080 sun-brightdesktopmoon --- # Authentication and Non-Instant Data Handling | Oz Knowledge [Authenticationchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/authentication) [Uploading Mediachevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/uploading-media) [Quantitative Resultschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/quantitative-results) [Using a Webhook to Get Resultschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/using-a-webhook-to-get-results) In API 6.0, we've implemented new analysis modes: [Single Requestchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request) [Instant API: Non-Persistent Modechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode) [PreviousSingle Requestchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request) [NextAuthenticationchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/authentication) Last updated 8 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # General Security Recommendations | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#cyberattack-types) Cyberattack Types ---------------------------------------------------------------------------------------------------------------------------------------------------- The most common cyberattacks can be divided to three groups: injection, integration, and presentation attacks. Below, you’ll find some examples for mobile and web SDKs. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#injection-attacks) Injection Attacks An injection attack on a liveness detection system is an attempt to bypass liveness verification mechanisms by injecting falsified data or modifying the execution logic of the frontend SDK. This type of attack is typically carried out by code injection, tampering with the runtime environment, or replacing camera input components (e.g., intercepting and substituting the video stream in real time, using virtual cameras, or manipulating JavaScript logic in the Web SDK). The goal of such attacks is to trick the liveness system into accepting fake or pre-recorded content as a genuine live interaction with the user. Examples for mobile SDKs: * Virtual cameras. * File system integrity compromise. * Function hooking & application modification. * Emulators and cloud devices. For web: * Virtual cameras. * Code injection attacks. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#presentation-attacks) Presentation Attacks A presentation attack is an attempt to deceive the system by presenting pre-recorded or artificial content that mimics a real user. The goal of such attacks is to pass the liveness check without involving a real, live person. These attacks do not target the SDK directly but rather the biometric models on the backend. They may include: * Photos, * Videos, * 3D masks, * Screens of other devices, or * Other media used to create the illusion of live presence. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#other-system-manipulation-attacks) Other (System Manipulation) Attacks These attacks include cyber fraudsters manipulating how the liveness detection module is integrated into the application or backend, bypassing or faking the check. Typically, these attacks involve patching the app, injecting hooks, or exploiting weak verification of liveness results. For instance, Man-in-the-Middle (MitM) / SSL Interception attack that is based on substitution or manipulation of captured data during network transmission, typically involving SSL/TLS violations or certificate pinning bypass. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#oz-software-built-in-security-measures) Oz Software Built-In Security Measures ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- With cyberattacks on the rise, cybersecurity has become crucial and is now our highest priority. We provide protection even from multi-vector complex attacks, ensuring your data is safe at all stages of processing, including media capture, data transmission, and analysis. This protection involves many mechanisms on multiple layers that work together, supporting and reinforcing each other. To name a few: * We do not accept virtual cameras and emulators. * In native SDKs, you can configure SSL pinning and add protection for media files using request payload. * For Web SDK, you can move the decision logic to backend to avoid manipulating data within the browser context. As our software aims to be embedded, it includes mechanisms to verify its runtime integrity, but it does not validate the integrity of the host application itself. Ensuring protection of the host application through anti-tampering techniques, code obfuscation, and runtime integrity verification is the responsibility of the host application owner. Without such safeguards, even a secure SDK may become susceptible to manipulation at the application or platform level. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#recommendations-for-host-application-protection) Recommendations for Host Application Protection ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Here are some measures we recommend to protect your application. 1. Consider revising your policies. This might involve: * Creating and using corporate SSL certificates, * Limiting access to unverified sources, * Using SSL proxy, * Controlling connections via SNI / TLS Handshake, * Creating a security policy and adhere to it, * etc. 2. For mobile applications, use Play Integrity (Android) and App Attest (iOS). 3. As for our SDKs, we recommend: * Ensuring you always have the latest version of Oz software installed, as almost each of our releases includes security enhancements. * Setting up [SSL pinning](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/security-recommendations) for Native SDKs. * For Web SDK, [retrieving and processing the analyses' results on your backend](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/security-recommendations) to avoid possible manipulations within the browser context, and using the [Safe](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/launching-the-plugin/description-of-the-on_complete-callback#safe) mode when setting up responses. For more detailed recommendations, please contact us. For us, clients' safety comes first, and we’ll be happy to help. [PreviousDeveloper Guidechevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide) [NextMigration to OzCapsulachevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula) Last updated 3 months ago Was this helpful? * [Cyberattack Types](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#cyberattack-types) * [Injection Attacks](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#injection-attacks) * [Presentation Attacks](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#presentation-attacks) * [Other (System Manipulation) Attacks](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#other-system-manipulation-attacks) * [Oz Software Built-In Security Measures](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#oz-software-built-in-security-measures) * [Recommendations for Host Application Protection](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations#recommendations-for-host-application-protection) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Developer Guide | Oz Knowledge In this section, you will find the description of both API and SDK components of Oz Forensics Liveness and face biometric system. API is the backend component of the system, it is needed for all the system modules to interact with each other. SDK is the frontend component that is used to: 1) take videos or images which are then processed via API, 2) display results. We provide two versions of API. With full version, we provide you with all functionality of Oz API. [Oz APIchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) The Lite version is a simple and lightweight version with only the necessary functions included. [Oz API Litechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite) The SDK component consists of web SDK and mobile SDK. Web SDK is a plugin that you can embed into your website page and the adapter for this plugin. [Oz Liveness Web SDKchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk) Mobile SDK is SDK for iOS and Android. [iOSchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios) [Androidchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android) [PreviousHow to Add Photo ID Capture and Face Matching to Your Web or Mobile Applicationchevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application) [NextGeneral Security Recommendationschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # SDK | Oz Knowledge [Oz Mobile SDK (iOS, Android, Flutter)chevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk) [Oz Liveness Web SDKchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk) [PreviousChangelogchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog) [NextOz Mobile SDK (iOS, Android, Flutter)chevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk) Last updated 4 years ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Changelog | Oz Knowledge #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.uj47fqp0ypp6) 1.2.3 – Nov., 2024 * Fixed the bug with the `time_created` and `folder_id` parameters of the Detect method that sometimes might have been generated incorrectly. * Security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.uj47fqp0ypp6-1) 1.2.2 – Oct. 17, 2024 * Updated models. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.uj47fqp0ypp6-2) 1.2.1 – Sept. 05, 2024 * The file size for the detect Liveness method is now capped at 15 MB, with a maximum of 10 files per request. * Updated the gesture list for `best_shot` analysis: it now supports head turns (left and right), tilts (up and down), smiling, and blinking. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.uj47fqp0ypp6-3) 1.2.0 – July 26, 2024 * Introduced the new [Liveness detect method](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#detect-presentation-attack-detection) that can process videos and archives as well. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.uj47fqp0ypp6-4) 1.1.1 – Nov. 28, 2022 * Added the [version check method](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#version-component-version-check) . #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.uj47fqp0ypp6-5) 1.1.0 * API Lite now accepts base64. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.uj47fqp0ypp6-6) 09.2021 * Improved the biometric model. * Added the 1:N mode. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.1bknhdfi9us) 08.2021 * Added the CORS policy. * Published the documentation. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.teqyyv6rc701) 06.2021 * Improved error messages – made them more detailed. * Simplified the Liveness/Detect methods. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.sl4b2gfyl6uu) 04.2021 * Reworked and improved the core. * Added anti-spoofing algorithms. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog#h.gas9m7p4oumk) 10.2020 * Added the `extract_and_compare` method. [PreviousOz API Lite Postman Collectionchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/postman-collections) [NextSDKchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Statuses in API | Oz Knowledge Field name / status analyse.state analyse.resolution\_status folder.resolution\_status system\_resolution INITIAL \- \- starting state starting state PROCESSING starting state starting state analyses in progress analyses in progress FAILED system error system error system error system error FINISHED finished successfully \- finished successfully \- DECLINED \- check failed \- check failed OPERATOR\_REQUIRED \- additional check is needed \- additional check is needed SUCCESS \- check succeeded \- check succeeded The details on each status are below. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#sostoyanie-analiza-analyse.state) Analysis State (analyse.state) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This is the state when the analysis is being processed. The values of this state can be: `PROCESSING` – the analysis is in progress; `FAILED` – the analysis failed due to some error and couldn't get finished; `FINISHED` – job's done, the analysis is finished, and you can check the result. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#rezultat-analiza-analyse.resolution_status) Analysis Result (analyse.resolution\_status) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Once the analysis is finished, you'll see one of the following results: `SUCCESS`– everything went fine, the check succeeded (e.g., faces match or liveness confirmed); `OPERATOR_REQUIRED` (except the Liveness analysis) – the result should be additionally checked by a human operator; circle-info The `OPERATOR_REQUIRED status` appears only if it is set up in biometry settings. `DECLINED` – the check failed (e.g., faces don't match or some spoofing attack detected). If the analysis hasn't been finished yet, the result inherits a value from `analyse.state`: `PROCESSING` (the analysis is in progress) / `FAILED` (the analysis failed due to some error and couldn't get finished). [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#sostoyanie-zayavki-folder.resolution_status) Folder Status (folder.resolution\_status) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ A folder is an entity that contains media to analyze. If the analyses have not been finished, the stage of processing media is shown in `resolution_status`: `INITIAL` – no analyses applied; `PROCESSING` – analyses are in progress; `FAILED` – any of the analyses failed due to some error and couldn't get finished; `FINISHED` – media in this folder are processed, the analyses are finished. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#sostoyanie-zayavki-folder.resolution_status-1) Folder Result (system\_resolution) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Folder result is the consolidated result of all analyses applied to media from this folder. Please note: the folder result is the result of the last-finished group of analyses. If all analyses are finished, the result will be: `SUCCESS`– everything went fine, all analyses completed successfully; `OPERATOR_REQUIRED` (except the Liveness analysis) – there are no analyses with the `DECLINED` status, but one or more analyses have been completed with the `OPERATOR_REQUIRED` status; `DECLINED` – one or more analyses have been completed with the `DECLINED` status. circle-info The analyses you send in a single `POST` request form a group. The group result is the "worst" result of analyses this group contains: `INITIAL` > `PROCESSING` > `FAILED` > `DECLINED` > `OPERATOR_REQUIRED` > `SUCCESS`, where `SUCCESS` means all analyses in the group have been completed successfully without any errors. [PreviousRules of Assigning Analyseschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses) [NextMedia Tagschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags) Last updated 6 months ago Was this helpful? * [Analysis State (analyse.state)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#sostoyanie-analiza-analyse.state) * [Analysis Result (analyse.resolution\_status)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#rezultat-analiza-analyse.resolution_status) * [Folder Status (folder.resolution\_status)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#sostoyanie-zayavki-folder.resolution_status) * [Folder Result (system\_resolution)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#sostoyanie-zayavki-folder.resolution_status-1) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz API | Oz Knowledge ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FwlYYK4AngBwGewdef7Wj%252Fcomponents-public-apiall.svg%3Falt%3Dmedia%26token%3D275012f9-0670-4521-b2e2-7831a9d865b9&width=768&dpr=3&quality=100&sign=dcc9109b&sv=2) Oz API is the most important component of the system. It makes sure all other components are connected with each other. Oz API: * provides the unified Rest API interface to run the Liveness and Biometry analyses, * processes authorization and user permissions management, * tracks and records requested orders and analyses to the database (for example, in 6.0, the database size for 100 000 orders with analyses is ~4 GB), * archives the inbound media files, * collects telemetry from connected mobile apps, * provides settings for specific device models, * generates reports with analyses' results. For the latest API methods collection, please refer to our [API referencearrow-up-right](https://apidoc.ozforensics.com/) . In API 6.0, we introduced two new operation modes: **Instant API** and **single request**. In the **Instant API** mode – also known as non-persistent – no data is stored at any point. You send a request, receive the result, and can be confident that nothing is saved. This mode is ideal for handling sensitive data and helps ensure GDPR compliance. Additionally, it reduces storage requirements on your side. **Single request** mode allows you to send all media along with the analysis request in one call and receive the results in the same response. This removes the need for multiple API calls – one is sufficient. However, if needed, you can still use the multi-request mode. [PreviousAPIchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api) [NextBasic Scenarioschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # How to Integrate On-Device Liveness into Your Mobile Application | Oz Knowledge circle-info We recommend using server-based analyses whenever possible, as on-device ones tend to produce less accurate results. This guide outlines the steps for integrating the Oz Liveness Mobile SDK into a customer mobile application for capturing facial videos and performing on-device liveness checks without sending any data to a server. The SDK implements the ready-to-use face capture user interface that is essential for seamless customer experience and accurate liveness results. Oz Liveness Mobile SDK requires a license. License is bound to the bundle\_id of your application, e.g., `com.yourcompany.yourapp`. Issue the 1-month trial license [on our websitearrow-up-right](https://ozforensics.com/developers/try_mobile_sdk) or [email usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#fd94939b92bd92879b928f98938e949e8ed39e9290) for a long-term license. [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#android) Android --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#add-sdk-to-your-project) Add SDK to your project In the build.gradle of your project, add: Copy allprojects { repositories { maven { url "https://ozforensics.jfrog.io/artifactory/main" } } } In the build.gradle of the module, add: Copy dependencies { implementation 'com.ozforensics.liveness:full:' // You can find the version needed in the Android changelog } 2 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#initialize-sdk) Initialize SDK Rename the license file to **forensics.license** and place it into the project's res/raw folder. Kotlin Java Copy OzLivenessSDK.init( context, listOf(LicenseSource.LicenseAssetId(R.raw.forensics)) ) Copy OzLivenessSDK.INSTANCE.init( context, Collections.singletonList(new LicenseSource.LicenseAssetId(R.raw.forensics)), null ); 3 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#add-face-recording) Add face recording To start recording, use startActivityForResult: Kotlin Java Copy val OZ_LIVENESS_REQUEST_CODE = 1 val intent = OzLivenessSDK.createStartIntent(listOf( OzAction.Blank)) startActivityForResult(intent, OZ_LIVENESS_REQUEST_CODE) Copy int OZ_LIVENESS_REQUEST_CODE = 1; Intent intent = OzLivenessSDK.INSTANCE.createStartIntent(Collections.singletonList(OzAction.Blank)); startActivityForResult(intent, OZ_LIVENESS_REQUEST_CODE); To obtain the captured video, use `onActivityResult`: Kotlin Java Copy override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == OZ_LIVENESS_REQUEST_CODE) { val sdkMediaResult = OzLivenessSDK.getResultFromIntent(data) val sdkErrorString = OzLivenessSDK.getErrorFromIntent(data) if (!sdkMediaResult.isNullOrEmpty()) { analyzeMedia(sdkMediaResult) } else println(sdkErrorString) } } Copy protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == OZ_LIVENESS_REQUEST_CODE) { List sdkMediaResult = OzLivenessSDK.INSTANCE.getResultFromIntent(data); String sdkErrorString = OzLivenessSDK.INSTANCE.getErrorFromIntent(data); if (sdkMediaResult != null && !sdkMediaResult.isEmpty()) { analyzeMedia(sdkMediaResult); } else System.out.println(sdkErrorString); } } The `sdkMediaResult` object contains the captured videos. 4 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#run-analyses) Run analyses To run the analyses, execute the code below. Mind that `mediaList` is an array of objects that were captured (`sdkMediaResult`) or otherwise created (media you captured on your own). Kotlin Java Copy private fun analyzeMedia(mediaList: List) { AnalysisRequest.Builder() .addAnalysis(Analysis(Analysis.Type.QUALITY, Analysis.Mode.ON_DEVICE, mediaList)) .build() .run(object : AnalysisRequest.AnalysisListener { override fun onSuccess(result: List) { result.forEach { println(it.resolution.name) println(it.folderId) } } override fun onError(error: OzException) { error.printStackTrace() } }) } Copy private void analyzeMedia(List mediaList) { new AnalysisRequest.Builder() .addAnalysis(new Analysis(Analysis.Type.QUALITY, Analysis.Mode.ON_DEVICE, mediaList, Collections.emptyMap())) .build() .run(new AnalysisRequest.AnalysisListener() { @Override public void onStatusChange(@NonNull AnalysisRequest.AnalysisStatus analysisStatus) {} @Override public void onSuccess(@NonNull List list) { for (OzAnalysisResult result: list) { System.out.println(result.getResolution().name()); System.out.println(result.getFolderId()); } } @Override public void onError(@NonNull OzException e) { e.printStackTrace(); } }); } [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#ios) iOS ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#add-our-sdk-to-your-project) Add our SDK to your project Install OZLivenessSDK. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#cocoapods) [CocoaPodsarrow-up-right](https://cocoapods.org/) To integrate OZLivenessSDK into an Xcode project, add to Podfile: Copy pod 'OZLivenessSDK', :git => 'https://gitlab.com/oz-forensics/oz-liveness-ios', :tag => '' // You can find the version needed in iOS changelog #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#spm) SPM Add the following package dependencies via SPM: [https://gitlab.com/oz-forensics/oz-mobile-ios-sdkarrow-up-right](https://gitlab.com/oz-forensics/oz-mobile-ios-sdk) (if you need a guide on adding the package dependencies, please refer to the [Apple documentationarrow-up-right](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app) ). **OzLivenessSDK** is mandatory. Ensure you've added the **OzLivenessSDKOnDevice** file. 2 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#initialize-sdk-1) Initialize SDK Rename the license file to **forensics.license** and put it into the project. Copy OZSDK(licenseSources: [.licenseFileName("forensics.license")]) { licenseData, error in if let error = error { print(error.errorDescription) } } 3 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#add-face-recording-1) Add face recording Create a controller that will capture videos as follows: Copy let actions: [OZVerificationMovement] = [.selfie] let ozLivenessVC: UIViewController = OZSDK.createVerificationVCWithDelegate(delegate, actions: actions) self.present(ozLivenessVC, animated: true) The delegate object must implement OZLivenessDelegate protocol: Copy let actions: [OZVerificationMovement] = [.selfie] let ozLivenessVC: UIViewController = OZSDK.createVerificationVCWithDelegate(delegate, actions: actions) self.present(ozLivenessVC, animated: true) 4 ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#run-analyses-1) Run analyses Use AnalysisRequestBuilder to initiate the Liveness analysis. Copy let analysisRequest = AnalysisRequestBuilder() let analysis = Analysis.init( media: mediaToAnalyze, type: .quality, mode: .onDevice) analysisRequest.uploadMedia(mediaToAnalyze) analysisRequest.addAnalysis(analysis) analysisRequest.run( scenarioStateHandler: { state in }, // scenario steps progress handler uploadProgressHandler: { (progress) in } // file upload progress handler ) { (analysisResults : [OzAnalysisResult], error) in // receive and handle analyses results here for result in analysisResults { print(result.resolution) print(result.folderID) } } With these steps, you are done with basic integration of Mobile SDKs. The data from the on-device analysis is not transferred anywhere, so please bear in mind you cannot access it via API or Web console. However, the internet is still required to check the license. Additionally, we recommend that you use our logging service called telemetry, as it helps a lot in investigating attacks' details. We'll provide you with credentials. Android [sample apparrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-android) source codes iOS [sample apparrow-up-right](https://gitlab.com/oz-forensics/public/oz-liveness-ios-sample/-/tree/main) source codes Android OzLiveness SDK [Developer Guidearrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android) iOS OzLiveness SDK [Developer Guidearrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios) [Demo apparrow-up-right](https://play.google.com/store/apps/details?id=com.ozforensics.liveness.demo&hl=en) in PlayMarket [Demo apparrow-up-right](https://testflight.apple.com/join/mBbPQqnM) in TestFlight [PreviousOn-Device Livenesschevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness) [NextFace Matchingchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching) Last updated 20 days ago Was this helpful? * [Android](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#android) * [Add SDK to your project](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#add-sdk-to-your-project) * [Initialize SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#initialize-sdk) * [Add face recording](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#add-face-recording) * [Run analyses](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#run-analyses) * [iOS](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#ios) * [Add our SDK to your project](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#add-our-sdk-to-your-project) * [Initialize SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#initialize-sdk-1) * [Add face recording](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#add-face-recording-1) * [Run analyses](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/on-device-liveness/how-to-integrate-on-device-liveness-into-your-mobile-application#run-analyses-1) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Single Request | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request#overview-and-benefits) Overview and Benefits ----------------------------------------------------------------------------------------------------------------------------------------------------- In version 6.0.1, we introduced a new feature which allows you to send all required data and receive the analysis result within a single request. Before 6.0.1, interacting with the API required multiple requests: you had to [create a folder and upload media to it](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/uploading-media) , initiate analyses (see [Liveness](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness) , [Biometry](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/biometry) , and [Blacklist](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/collection) ), and then either poll for results or [use webhooks](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/using-a-webhook-to-get-results) for notifications when the result was ready. This flow is still supported, so if you need to send separate requests, you can continue using the existing methods that are listed above. However, the new API operation mode significantly simplifies the process by allowing you to send a single request and receive the response synchronously. The key benefits are: * Single request for everything – all data is sent in one package, eliminating the risk of data loss. * Synchronous response – no need for polling or webhooks to retrieve results. * High performance – supports up to 36 analyses per minute per instance. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request#usage) Usage --------------------------------------------------------------------------------------------------------------------- To use this method, call `POST /api/folders/`. In the X-Forensic-Access-Token header, pass your [access token](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/authentication) . Add media files to the request body and define the tags and metadata if needed in the payload part. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request#request-example) Request Example Copy { // (optional block) folder metadata if needed "folder:meta_data": { "partner_side_folder_id": "00000000-0000-0000-0000-000000000000", "person_info": { "first_name": "John", "middle_name": "Jameson", "last_name": "Doe" } }, // (optional block) folder metadata if needed "media:meta_data": { "video1": { "foo": "bar" } }, "media:tags": { "video1": [\ "video_selfie",\ "video_selfie_eyes",\ "orientation_portrait"\ ] }, "analyses": [\ {\ "type": "quality",\ // (optional block) folder metadata if needed\ "meta_data": {\ "example1": "some_example1"\ },\ // additional parameters\ "params": {\ "threshold_spoofing": 0.5,\ "extract_best_shot": false\ }\ }\ ] } #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request#response-example) **Response Example** In response, you receive analysis results. You're done. [PreviousInstant API: Non-Persistent Modechevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode) [NextAuthentication and Non-Instant Data Handlingchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases) Last updated 7 months ago Was this helpful? * [Overview and Benefits](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request#overview-and-benefits) * [Usage](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request#usage) Was this helpful? sun-brightdesktopmoon Copy { "company_id": "00000000-0000-0000-0000-000000000000", "time_created": 1744017549.366616, "folder_id": "00000000-0000-0000-0000-000000000000", "user_id": "00000000-0000-0000-0000-000000000000", "resolution_endpoint": null, "resolution_status": "FINISHED", "resolution_comment": "[]", "system_resolution": "SUCCESS", ... // folder metadata if you've added it "meta_data": { "partner_side_folder_id": "00000000-0000-0000-0000-000000000000", "person_info": { "first_name": "John", "middle_name": "Jameson", "last_name": "Doe" } }, "media": [\ {\ "company_id": "00000000-0000-0000-0000-000000000000",\ "folder_id": "00000000-0000-0000-0000-000000000000",\ "folder_time_created": 1744017549.366616,\ "original_name": "00000000-0000-0000-0000-000000000000.mp4",\ "original_url": null,\ "media_id": "00000000-0000-0000-0000-000000000000",\ "media_type": "VIDEO_FOLDER",\ "tags": "video1": [\ "video_selfie",\ "video_selfie_eyes",\ "orientation_portrait"\ ]\ "info": {},\ "time_created": 1744017549.368665,\ "time_updated": 1744017549.36867,\ // media metadata if you've added it\ "meta_data": {\ "foo": "bar"\ },\ "thumb_url": null,\ "image_id": "00000000-0000-0000-0000-000000000000"\ }\ ], "time_updated": 1744017549.366629, "analyses": [\ {\ "company_id": "00000000-0000-0000-0000-000000000000",\ "group_id": "00000000-0000-0000-0000-000000000000",\ "folder_id": "00000000-0000-0000-0000-000000000000",\ "folder_time_created": 1744017549.366616,\ "analysis_id": "00000000-0000-0000-0000-000000000000",\ "state": "FINISHED",\ "resolution_operator": null,\ "results_media": [\ {\ ...\ }\ ],\ "results_data": null,\ // analysis metadata if you've added it\ "meta_data": {\ "example1": "some_example1"\ },\ "time_created": 1744017549.369485,\ "time_updated": 1744017550.659305,\ "error_code": null,\ "error_message": null,\ "source_media": [\ {\ ...\ }\ ],\ "type": "QUALITY",\ "analyse_id": "00000000-0000-0000-0000-000000000000",\ "resolution_status": "SUCCESS",\ "resolution": "SUCCESS"\ }\ ] } sun-brightdesktopmoon --- # iOS | Oz Knowledge To start using Oz iOS SDK, follow the steps below. 1. Embed Oz iOS SDK into your project as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/adding-sdk-to-a-clients-mobile-app) . 2. Get a trial license for SDK on our [websitearrow-up-right](https://ozforensics.com/developers/try_mobile_sdk) or a production license by [emailenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#ee87808881ae819488819c8b809d878d9dc08d8183) . We'll need your `bundle id`. Add the license to your project as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/getting-a-license-for-ios-sdk) . 3. Connect SDK to API as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/connecting-sdk-to-api) . This step is optional, as this connection is required only when you need to process data on a server. 4. Capture videos by creating the controller as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/capturing-videos) . You'll send them for analysis afterwards. 5. Upload and analyze media you've taken at the previous step. The process of checking liveness and face biometry is described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/checking-liveness-and-face-biometry) . 6. If you want to customize the look-and-feel of Oz iOS SDK, please refer to [this section](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/customizing-ios-sdk-interface) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios#resources) Resources Minimal iOS version: 11. Minimal Xcode version: 16. Available languages: EN, ES, HY, KK, KY, TR, PT-BR. A sample app source code using the Oz Liveness SDK is located in the GitLab repository: [![Logo](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2Fgitlab.com%2Fassets%2Ffavicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png&width=20&dpr=3&quality=100&sign=e1dcbc1a&sv=2)Files · main · oz-forensics / Oz Forensics Public projects / oz-liveness-ios-sample · GitLabGitLabchevron-right](https://gitlab.com/oz-forensics/public/oz-liveness-ios-sample/-/tree/main) Follow the link below to see a list of SDK methods and properties: [iOS SDK Methods and Propertieschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/ios-sdk-methods-and-properties) Download the demo app latest build [herearrow-up-right](https://testflight.apple.com/join/ETnAizs8) . [PreviousChangelogchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/changelog) [NextGetting a License for iOS SDKchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/getting-a-license-for-ios-sdk) Last updated 8 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # User Guide | Oz Knowledge [Oz Web UIchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui) [PreviousOz API Configurationchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration) [NextOz Web UIchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui) Last updated 28 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Metadata | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata#overview) Overview --------------------------------------------------------------------------------------------------------------------- Metadata is any optional data you might need to add to a [system object](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects) . In the `meta_data` section, you can include any information you want, simply by providing any number of fields with their values: Copy … meta_data: { "field1": "value1", "field2": "value2" } … [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata#objects-and-methods) Objects and Methods ------------------------------------------------------------------------------------------------------------------------------------------- Metadata is available for most Oz system objects. Here is the list of these objects with the API methods required to add metadata. Please note: you can also add metadata to these objects during their creation. **Object** **API Method** User `PATCH /api/users/{{user_id}}` Folder `PATCH /api/folders/{{folder_id}}/meta_data/` Media `PATCH /api/media/{{media_id}}/meta_data` Analysis `PATCH /api/analyses/{{analyse_id}}/meta_data` Collection `PATCH /api/collections/{{collection_id}}/meta_data/` and, for a person in a collection, `PATCH /api/collections/{{collection_id}}/persons/{{person_id}}/meta_data` You can also change or delete metadata. Please refer to our [API documentationarrow-up-right](https://apidoc.ozforensics.com/) . [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata#usage-examples) Usage Examples --------------------------------------------------------------------------------------------------------------------------------- You may want to use metadata to group folders by a person or lead. For example, if you want to calculate conversion when a single lead makes several Liveness attempts, just add the person/lead identifier to the folder metadata. Here is how to add the client ID `iin` to a folder object. In the request body, add: circle-info You can pass an ID of a person in this field, and use this ID to combine requests with the same person and count unique persons (same ID = same person, different IDs = different persons). This ID can be a phone number, an IIN, an SSN, or any other kind of unique ID. The ID will be displayed in the report as an additional column. Another case is security: when you need to process the analyses’ result from your back end, but don’t want to perform this using the folder ID. Add an ID (`transaction_id`) to this folder and use this ID to search for the required information. This case is thoroughly explained [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/security-recommendations#retrieve-the-analysis-response-and-process-it-on-the-back-end) . If you store PII in metadata, make sure it complies with the relevant regulatory requirements. You can also add metadata via SDK to process the information later using API methods. Please refer to the corresponding SDK sections: * [iOS](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/checking-liveness-and-face-biometry#adding-metadata) * [Android](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/checking-liveness-and-face-biometry#adding-metadata) * [Web](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/launching-the-plugin) [PreviousMedia Tagschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags) [NextAPI Error Codeschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/http-return-codes) Last updated 1 year ago Was this helpful? * [Overview](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata#overview) * [Objects and Methods](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata#objects-and-methods) * [Usage Examples](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata#usage-examples) Was this helpful? sun-brightdesktopmoon Copy { "iin": "123123123" } sun-brightdesktopmoon --- # OzCapsula Data Container | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#configuring-oz-api) Configuring Oz API --------------------------------------------------------------------------------------------------------------------------------------------------------- The main change in interaction with API is that you require to send data with another content type, as data container is a binary file: `Content-Type` = `application/octet-stream`. We've added support for this content type along with container functionality. Also, Instant API now requires client’s private and public keys to function. The paths to these keys should be specified in `OZ_JWT_PRIVATE_KEY_PATH` and `OZ_JWT_PUBLIC_KEY_PATH` in the configuration file. To generate them, use commands as listed below. Copy # Generate private key: openssl ecparam -name secp384r1 -genkey -noout | openssl pkcs8 -topk8 -nocrypt -out ./jwt.key # Generate public key: openssl ec -in ./jwt.key -pubout -out ./jwt.pub ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#examples) Examples `POST api/folders`: Copy curl -X POST \ '{{host}}/api/folders' \ -H 'Content-Type: application/octet-stream' \ -H 'X-Forensic-Access-Token: ' \ --data-binary '@/path/to/container.dat' `POST api/instant/folders`: Copy curl -X POST \ '{{host}}api/instant/folders' \ -H 'Content-Type: application/octet-stream' \ -H 'X-Forensic-Access-Token: ' \ --data-binary '@/path/to/container.dat' ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#exceptions) **Exceptions** **Error code** **Error message** **Description** 13 No data container provided API didn’t receive the container 14 * Data container unpacking failed * Invalid Data Container * Invalid signature * Invalid SummingHash * Invalid or empty Session Token The container appears to contain errors and can’t be unpackaged. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#obtaining-a-session-token) Obtaining a Session Token ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- Before you start with SDK, obtain a session token: 1. (Optional, only if you use stateful API) Authorize as any non-OPERATOR role. 2. Call `GET {{host}}/api/authorize/session_token`. **Example request** **Example response** ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FJ5Q2cNvuJyoh0C3p6EoG%252Fsession%2520token.png%3Falt%3Dmedia%26token%3D8579a2cf-ebca-4f1d-8061-094b3c4e5ce7&width=768&dpr=3&quality=100&sign=9010973d&sv=2) [PreviousCollection (1:N) Management in Oz APIchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/collection/collection-management-in-oz-api) [NextInstant API: Non-Persistent Modechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode) Last updated 1 month ago Was this helpful? * [Configuring Oz API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#configuring-oz-api) * [Examples](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#examples) * [Exceptions](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#exceptions) * [Obtaining a Session Token](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#obtaining-a-session-token) Was this helpful? sun-brightdesktopmoon Copy curl -L 'https://{{host}}/api/authorize/session_token' \ -H 'X-Forensic-Access-Token: ' \ -H 'Content-Type: application/json' Copy { "session_token": "" } sun-brightdesktopmoon --- # Flutter | Oz Knowledge In this section, we explain how to use Oz Flutter SDK for iOS and Android. Before you start, it is recommended that you install: * Flutter 3.0.0 or higher; * Android SDK 21 or higher; * dart 2.18.6 or higher; * iOS platform 13 or higher; * Xcode. Please find the Flutter repository [herearrow-up-right](https://gitlab.com/oz-forensics/oz-mobile-flutter-plugin/-/tree/develop/example?ref_type=heads) . [PreviousChangelogchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/changelog) [NextHow to Install and Use Oz Flutter Pluginchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/flutter/how-to-install-and-use-oz-flutter-plugin) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz Mobile SDK (iOS, Android, Flutter) | Oz Knowledge Oz Mobile SDK stands for the Software Developer’s Kit of the Oz Forensics Liveness and Face Biometric System, providing seamless integration with customers’ mobile apps for login and biometric identification. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F5Xxjxsly0qBqmkt4dONM%252Fcomponents-public-msdk.svg%3Falt%3Dmedia%26token%3Dc5692cd1-6780-496e-9143-ce3c194fc3ba&width=768&dpr=3&quality=100&sign=d20e90e8&sv=2) [Androidchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android) [iOSchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios) circle-info Currently, both Android and iOS SDK work in the portrait mode. [Flutterchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/flutter) [PreviousSDKchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk) [NextAndroidchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Basic Scenarios | Oz Knowledge Liveness is checking that a person on a video is a real living person. [Livenesschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness) Biometry compares two or more faces from different media files and shows whether the faces belong to the same person or not. [Biometry (Face Matching)chevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/biometry) Best shot is an addition to the Liveness check. The system chooses the best frame from a video and saves it as a picture for later use. [Best Shotchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness/best-shot) Blacklist checks whether a face on a photo or a video matches with one of the faces in the pre-created database. [Collection (1:N) Checkchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/collection) [PreviousOz APIchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) [NextLivenesschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness) Last updated 9 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Administrator Guide | Oz Knowledge [Deployment Architecturechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture) [Installation in Dockerchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-docker) [Installation in Kuberneteschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes) [Performance and Scalability Guidechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide) [Publishing API Methods in the Internet: Security Recommendationschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/publishing-api-methods-in-the-internet-security-recommendations) [Monitoringchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring) [License Serverchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server) [Web Adapter (Web SDK Backend) Configurationchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter) [Oz API Configurationchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration) [PreviousChangelogchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog) [NextDeployment Architecturechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture) Last updated 4 years ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz API Lite | Oz Knowledge triangle-exclamation API Lite is deprecated and no longer maintained. Its functionality has been added to API full: see [Instant API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode) . Oz API Lite is the lightweight yet powerful version of Oz API. The Lite version is less resource-demanding, more productive, and easier to work with. The analyses are made within the API Lite image. As Oz API Lite doesn't include any additional services like statistics or data storage, this version is the one to use when you need a high performance. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite#examples-of-methods) Examples of methods To check the Liveness processor, [call](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#health-checking-the-status-of-liveness-processor) `GET /v1/face/liveness/health`. To check the Biometry processor, [call](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#health-biometric-processor-status-check) `GET /v1/face/pattern/health`. To perform the liveness check for an image, [call](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#detect-presentation-attack-detection) `POST /v1/face/liveness/detect` (it takes an image as an input and displays the evaluation of spoofing attack chance in this image) To compare two faces in two images, [call](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#extract_and_compare-extracting-and-comparison-of-templates-derived-from-two-images) `POST /v1/face/pattern/extract_and_compare` (it takes two images as an input, derives the biometry templates from these images, and compares them). To compare an image with a bunch of images, [call](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#extract_and_compare_n-1-n-template-extraction-and-comparison) `POST /v1/face/pattern/extract_and_compare_n`. For the full list of Oz API Lite methods, please refer to [API Methods](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods) . [PreviousChangelogchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog) [NextAPI Lite Methodschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods) Last updated 9 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Installation in Docker | Oz Knowledge This page is currently under construction. Please [contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#d9aaaca9a9b6abad99b6a3bfb6abbcb7aab0baaaf7bab6b4) , we'll be happy to help. [PreviousDeployment Architecturechevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture) [NextInstallation in Kuberneteschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes) Last updated 1 month ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # How to Add Face Matching of Liveness Video with a Reference Photo From Your Database | Oz Knowledge circle-exclamation Please note: this guide applies to the non-container flow only. This guide describes how to match a liveness video with a reference photo of a person that is already stored in your database. However, if you prefer to include a photo ID capture step to your liveness process instead of using a stored photo, then you can refer to [another guide](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application) in this section. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FiLZnzmk78AmRdBxsHhoR%252Ffacematching-scheme-v8.drawio.png%3Falt%3Dmedia%26token%3D4e4a64b4-0287-4ab7-9d27-f367e5d594aa&width=768&dpr=3&quality=100&sign=dc450f24&sv=2) By this time you should have already implemented liveness video recording and liveness check. If not, please refer to these guides: * [Integration of Oz Liveness Web SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) * [Integration of Oz Liveness Mobile SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) In this scenario, you upload your reference image to the same folder where you have a liveness video, initiate the BIOMETRY analysis, and poll for the results. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database#id-1.-get-folder_id) 1\. Get `folder_id` Given that you already have the liveness video recorded and uploaded, you will be working with the same Oz API folder where your liveness video is. Obtain the folder ID as described below, and pass it to your back end. * For a video recorded by Web SDK, get the `folder_id` as described [herearrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/configuration-and-usage/web-plugin/security-recommendations#retrieve-the-analysis-response-and-process-it-on-the-back-end) . * For a video recorded by Android or iOS SDK, retrieve the `folder_id` from the analysis’ results as shown below: **Android**: Kotlin Java **iOS**: #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database#id-2.-upload-your-reference-photo) 2\. Upload your reference photo [Callarrow-up-right](https://apidoc.ozforensics.com/#tag/Media/paths/~1api~1folders~1%7Bfolder_id%7D~1media/posthttps://apidoc.ozforensics.com/#tag/Media/paths/~1api~1folders~1%7Bfolder_id%7D~1media/post) `POST /api/folders/{{folder_id}}/media/` method, replacing the `folder_id` with the ID you’ve got in the previous step. This will upload your new media to the folder where your ready-made liveness video is located. Set the appropriate tags in the payload field of the request, depending on the nature of a reference photo that you have. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database#id-3.-initiate-the-analysis) 3\. Initiate the analysis To launch the analysis, [callarrow-up-right](https://apidoc.ozforensics.com/#tag/Analyses/paths/~1api~1folders~1%7Bfolder_id%7D~1analyses/post) `POST /api/folders/{{folder_id}}/analyses/` with the `folder_id` from the previous step. In the request body, specify the biometry check to be launched. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database#id-4.-poll-for-the-results) 4\. Poll for the results Repeat [callingarrow-up-right](https://apidoc.ozforensics.com/#tag/Analyses/paths/~1api~1analyses~1%7Banalyse_id%7D/get) `GET /api/analyses/{{analysis_id}}` with the `analysis_id` from the previous step once a second until the state changes from `PROCESSING` to something else. For a finished analysis: * get the qualitative result from resolution (`SUCCESS` or `DECLINED`). * get the quantitative results from `analyses.results_data.min_confidence` Here is the Postman collection for this guide. file-download 6KB [Face Matching with a Reference Photo.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FABnmGyPVhB8ue0t5A0Ah%2FFace%20Matching%20with%20a%20Reference%20Photo.postman_collection.json?alt=media&token=545a3406-9049-4252-b472-7c7e97f2591d) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FABnmGyPVhB8ue0t5A0Ah%2FFace%20Matching%20with%20a%20Reference%20Photo.postman_collection.json?alt=media&token=545a3406-9049-4252-b472-7c7e97f2591d) With these steps completed, you are done with adding face matching via Oz API. You will be able to access your media and analysis results in Web UI via browser or programmatically via API. Oz API methods can be combined with great flexibility. Explore Oz API using the [API Developer Guidearrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) . [PreviousFace Matchingchevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching) [NextHow to Add Photo ID Capture and Face Matching to Your Web or Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application) Last updated 8 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon Copy AnalysisRequest.Builder() ... .run(object : AnalysisRequest.AnalysisListener { override fun onSuccess(result: List) { // save folder_id that is needed for the next step val folderId = result.firstOrNull()?.folderId } ... }) Copy private void analyzeMedia(List mediaList) { new AnalysisRequest.Builder() ... .run(new AnalysisRequest.AnalysisListener() { @Override public void onStatusChange(@NonNull AnalysisRequest.AnalysisStatus analysisStatus) {} @Override public void onSuccess(@NonNull List list) { String folderId = list.get(0).getFolderId(); } } ... }); } Copy analysisRequest.run( scenarioStateHandler: { state in }, uploadProgressHandler: { (progress) in } ) { (analysisResults : [OzAnalysisResult], error) in // save folder_id that is needed for the next step let folderID = analysisResults.first?.folderID } } Copy { "media:tags": { "photo1": [\ "photo_id", "photo_id_front" // for the front side of an ID\ // OR\ "photo_selfie" // for a non-ID photo\ ] } } Copy { "analyses": [\ {\ "type": "biometry"\ }\ ] } sun-brightdesktopmoon --- # How to Add Photo ID Capture and Face Matching to Your Web or Mobile Application | Oz Knowledge circle-exclamation Please note: this guide applies to the non-container flow only. circle-info Please note that the **Oz Liveness Mobile SDK does not include a user interface for scanning official documents**. You may need to explore alternative SDKs that offer that functionality or implement it on your own. Web SDK does include a simple photo ID capture screen. This guide describes the steps needed to add face matching to your liveness check. By this time you should have already implemented liveness video recording and liveness check. If not, please refer to these guides: * [Integration of Oz Liveness Web SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) * [Integration of Oz Liveness Mobile SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FkO9yiuogGe1hp2LSVVIa%252Ffacematching2-scheme-v8.drawio.png%3Falt%3Dmedia%26token%3D58076807-8a9b-450c-a7ff-0ba662b8179e&width=768&dpr=3&quality=100&sign=d0021e19&sv=2) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application#adding-photo-id-capture-step-to-web-sdk) Adding Photo ID Capture Step to Web SDK Simply add `photo_id_front` to the list of actions for the plugin, e.g., ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application#adding-face-matching-to-android-sdk) Adding Face Matching to Android SDK For the purpose of this guide, it is assumed that your reference photo (e.g., front side of an ID) is stored on the device as _reference.jpg_. Modify the code that runs the analysis as follows: Kotlin Java For on-device analyses, you can change the analysis mode from `Analysis.Mode.SERVER_BASED` to `Analysis.Mode.ON_DEVICE` Check also the Android [sample apparrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-android) source code. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application#adding-face-matching-to-ios-sdk) Adding Face Matching to iOS SDK For the purpose of this guide, it is assumed that your reference photo (e.g., front side of an ID) is stored on the device as _reference.jpg_. Modify the code that runs the analysis as follows: For on-device analyses, you can change the analysis mode from `mode: .serverBased` to `mode: .onDevice` Check also the iOS [sample apparrow-up-right](https://gitlab.com/oz-forensics/public/oz-liveness-ios-sample/-/tree/main) source code. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application#final-notes-for-all-sdks) Final notes for all SDKs You will be able to access your media and analysis results in Web UI via browser or programmatically via API. Oz API methods as well as Mobile and Web SDK methods can be combined with great flexibility. Explore the options available in the [Developer Guide](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide) section. [PreviousHow to Add Face Matching of Liveness Video with a Reference Photo From Your Databasechevron-left](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database) [NextDeveloper Guidechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide) Last updated 8 days ago Was this helpful? * [Adding Photo ID Capture Step to Web SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application#adding-photo-id-capture-step-to-web-sdk) * [Adding Face Matching to Android SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application#adding-face-matching-to-android-sdk) * [Adding Face Matching to iOS SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application#adding-face-matching-to-ios-sdk) * [Final notes for all SDKs](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application#final-notes-for-all-sdks) Was this helpful? sun-brightdesktopmoon Copy OzLiveness.open({ session_token, lang: 'en', action: [\ 'photo_id_front', \ 'video_selfie_blank'\ ], ... }); Copy private fun analyzeMedia(mediaList: List) { val refFile = File(context.filesDir, "reference.jpg") val refMedia = OzAbstractMedia.OzDocumentPhoto( OzMediaTag.PhotoIdFront , // OzMediaTag.PhotoSelfie for a non-ID photo refFile.absolutePath ) AnalysisRequest.Builder() .addAnalysis(Analysis(Analysis.Type.QUALITY, Analysis.Mode.SERVER_BASED, mediaList)) .addAnalysis(Analysis(Analysis.Type.BIOMETRY, Analysis.Mode.SERVER_BASED, mediaList + refMedia)) .build() .run(object : AnalysisRequest.AnalysisListener { override fun onSuccess(result: List) { result.forEach { println(it.resolution.name) println(it.folderId) } } override fun onError(error: OzException) { error.printStackTrace() } }) } Copy private void analyzeMedia(List mediaList) { File refFile = new File(context.getFilesDir(), "reference.jpg"); OzAbstractMedia refMedia = new OzAbstractMedia.OzDocumentPhoto( OzMediaTag.PhotoIdFront , // OzMediaTag.PhotoSelfie for a non-ID photo refFile.getAbsolutePath() ); ArrayList mediaWithReferencePhoto = new ArrayList<>(mediaList); mediaWithReferencePhoto.add(refMedia); new AnalysisRequest.Builder() .addAnalysis(new Analysis(Analysis.Type.QUALITY, Analysis.Mode.SERVER_BASED, mediaList, Collections.emptyMap())) .addAnalysis(new Analysis(Analysis.Type.BIOMETRY, Analysis.Mode.SERVER_BASED, mediaWithReferencePhoto, Collections.emptyMap())) .build() .run(new AnalysisRequest.AnalysisListener() { @Override public void onStatusChange(@NonNull AnalysisRequest.AnalysisStatus analysisStatus) {} @Override public void onSuccess(@NonNull List list) { String folderId = list.get(0).getFolderId(); } @Override public void onError(@NonNull OzException e) { e.printStackTrace(); } }); } Copy let imageURL = URL(fileURLWithPath: NSTemporaryDirectory()) .appendingPathComponent("reference.jpg") let refMedia = OZMedia.init(movement: .selfie, mediaType: .movement, metaData: nil, videoURL: nil, bestShotURL: imageUrl, preferredMediaURL: nil, timestamp: Date()) var mediaBiometry = [OZMedia]() mediaBiometry.append(refMedia) mediaBiometry.append(contentsOf: mediaToAnalyze) let analysisRequest = AnalysisRequestBuilder() let analysisBiometry = Analysis.init(media: mediaBiometry, type: .biometry, mode: .serverBased) let analysisQuality = Analysis.init(media: mediaToAnalyze, type: .quality, mode: .serverBased) analysisRequest.addAnalysis(analysisBiometry) analysisRequest.addAnalysis(analysisQuality) analysisRequest.uploadMedia(mediaBiometry) analysisRequest.run( scenarioStateHandler: { state in }, // scenario steps progress handler uploadProgressHandler: { (progress) in } // file upload progress handler ) { (analysisResults : [OzAnalysisResult], error) in // receive and handle analyses results here for result in analysisResults { print(result.resolution) print(result.folderID) } } sun-brightdesktopmoon --- # API Error Codes | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/http-return-codes#http-response-codes) HTTP Response Codes ---------------------------------------------------------------------------------------------------------------------------------------------------- * Response codes **2XX** indicate a successfully processed request (e.g., code 200 for retrieving data, code 201 for adding a new entity, code 204 for deletion, etc.). * Response codes **4XX** indicate that a request could not be processed correctly because of some client-side data issues (e.g., 404 when addressing a non-existing resource). * Response codes **5XX** indicate that an internal server-side error occurred during the request processing (e.g., when database is temporarily unavailable). [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/http-return-codes#response-body-with-errors) Response Body with Errors ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Each response error includes HTTP code and JSON data with error description. It has the following structure: * `error_code` – integer error code; * `error_message`– text error description; * `details` – additional error details (format is specified to each case). Can be empty. Sample error response: Copy { "error_code": 0, "error_message": "Unknown server side error occurred", "details": null } Error codes: * `0 – UNKNOWN` Unknown server error. * `1 - NOT ALLOWED` An unallowed method is called. Usually is followed by the 405 HTTP status of response. For example, trying to request the PATCH method, while only GET/POST ones are supported. * `2 - NOT REALIZED` The method is documented but is not realized by any temporary or permanent reason. * `3 - INVALID STRUCTURE` Incorrect structure of request. Some required fields missing or a format validation error occurred. * `4 - INVALID VALUE` Incorrect value of the parameter inside request body or query. * `5 - INVALID TYPE` The invalid data type of the request parameter. * `6 - AUTH NOT PROVIDED` Access token not specified. * `7 - AUTH INVALID` The access token does not exist in the database. * `8 - AUTH EXPIRED` Auth token is expired. * `9 - AUTH FORBIDDEN` Access denied for the current user. * `10 - NOT EXIST` the requested resource is not found (alternative of HTTP status\_code = 404). * `11 - EXTERNAL SERVICE` Error in the external information system. * `12 – DATABASE` Critical database error on the server host. [PreviousMetadatachevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata) [NextOz API Postman Collectionschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections) Last updated 1 year ago Was this helpful? * [HTTP Response Codes](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/http-return-codes#http-response-codes) * [Response Body with Errors](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/http-return-codes#response-body-with-errors) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Android | Oz Knowledge To start using Oz Android SDK, follow the steps below. 1. Embed Oz Android SDK into your project as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/adding-sdk-to-a-project) . 2. Get a trial license for SDK on our [websitearrow-up-right](https://ozforensics.com/developers/try_mobile_sdk) or a production license by [emailenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#d9b0b7bfb699b6a3bfb6abbcb7aab0baaaf7bab6b4) . We'll need your `application id`. Add the license to your project as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/getting-a-license-for-android-sdk) . 3. Connect SDK to API as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/connecting-sdk-to-api) . This step is optional, as this connection is required only when you need to process data on a server. 4. Capture videos using methods described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/capturing-videos) . You'll send them for analysis afterward. 5. Analyze media you've taken at the previous step. The process of checking liveness and face biometry is described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/checking-liveness-and-face-biometry) . 6. If you want to customize the look-and-feel of Oz Android SDK, please refer to [this section](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/customizing-android-sdk) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android#resources) Resources Recommended Android version: 5+ (the newer the smartphone is, the faster the analyses are). Recommended versions of components: Gradle 7.5.1 Kotlin 1.7.21 AGP 7.3.1 Java Target Level 1.8 JDK 17 We do not support emulators. Available languages: EN, ES, HY, KK, KY, TR, PT-BR. To obtain the sample apps source code for the Oz Liveness SDK, proceed to the GitLab repository: [![Logo](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2Fgitlab.com%2Fassets%2Ffavicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png&width=20&dpr=3&quality=100&sign=e1dcbc1a&sv=2)oz-forensics / oz-liveness-android · GitLabGitLabchevron-right](https://gitlab.com/oz-forensics/oz-liveness-android) Follow the link below to see a list of SDK methods and properties: [Android SDK Methods and Propertieschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-sdk-methods-and-properties) Download the demo app latest build [herearrow-up-right](https://play.google.com/store/apps/details?id=com.ozforensics.liveness.demo&hl=en) . [PreviousOz Mobile SDK (iOS, Android, Flutter)chevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk) [NextGetting a License for Android SDKchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/getting-a-license-for-android-sdk) Last updated 8 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # iOS | Oz Knowledge [Uploading and Analyzing Mediachevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/ios/uploading-and-analyzing-media) [PreviousUploading and Analyzing Mediachevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/uploading-and-analyzing-media) [NextUploading and Analyzing Mediachevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/ios/uploading-and-analyzing-media) Last updated 3 years ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz SDK Media Quality Checks | Oz Knowledge While capturing a photo or video, our SDKs perform a series of media quality assessments to verify that the resulting media adheres to our quality [standards](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements) , thereby maximizing the accuracy of the analyses. These evaluations occur both before and during the capturing process. The specific checks vary based on the selected gesture. For example, if you select **Smile**, the SDK must confirm that you don't smile beforehand, whereas for **Selfie**, a subtle smile may be deemed acceptable. Below is an illustrative list of conditions we may examine. * There is a single face in the frame (no other faces). * The face is centered and frontally oriented. * The face is neither too close nor too far from the camera. * There are no additional objects that might cover the face, such as sunglasses or a mask. * The eyes are open. * The illumination is uniform, and the face is clearly seen. * There is no motion blur. * The overall media quality is not too low. Should the check fail for any reason, such as closed eyes or the SDK identifying a group of people, no photo or video will be captured, and the user will encounter a timeout error. [PreviousMedia Quality Requirementschevron-left](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements) [NextMedia File Size Overviewchevron-right](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview) Last updated 8 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Media Quality Requirements | Oz Knowledge circle-info If your media meets the listed requirements, this ensures the highest analysis accuracy. If media does not meet the minimal requirements, accuracy is not guaranteed. We highly recommend using our SDK to capture media. This ensures your media meets all requirements, and you receive the most reliable analysis results. [hashtag](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements#h.y1nmy3kgxvj) Common Media Requirements --------------------------------------------------------------------------------------------------------------------------------- * There shouldn't be more than one face in the frame (except photos of documents). * The face should be in the center of the frame (except photos of documents). * Orientation: portrait or landscape. * Liveness images should have 3 channels. [hashtag](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements#h.j2c6cxdjrkzr) Video Quality Requirements ----------------------------------------------------------------------------------------------------------------------------------- **Parameter** **Requirements** Video length * up to 5 seconds Bitrate * recommended – 10000 Kbit/sec Resolution * minimum – 480p * recommended – 720p Angle * full-face * the eye line is horizontal Deviation of the face from the vertical direction: * minimum – 30 degrees or less * recommended – 15 degrees or less Brightness Minimum: * the eye area is not too dark * the background is not too bright Recommended: * the face shape is clear * the eye area is not too dark * the background is not too bright * the face should be evenly illuminated without glares or shadows Face size Portrait: * 50-80% of the frame height * 40-60% of the frame width Lanscape: * 50-80% of the frame height * 15-25% of the frame width Video format Recommended: * MPEG/MPG * QuickTime/MOV * MP4 Also possible: * OGG * WebM * WMV * AVI [hashtag](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements#h.picbxtifpkq0) Image Quality Requirements ----------------------------------------------------------------------------------------------------------------------------------- The requirements below refer to photos taken at the time the check is being performed. **Parameter** **Requirements** Resolution * minimum – 480×640 (252×300 for Oz Biometry) * recommended – 720×1280 Angle * full-face * the eye line is horizontal Deviation of the face from the vertical direction: * minimum – 30 degrees or less * recommended – 15 degrees or less Brightness Minimum: * the eye area is not too dark * the background is not too bright Recommended: * the face shape is clear * the eye area is not too dark * the background is not too bright * the face should be evenly illuminated without glares or shadows Face size Portrait: * 50-80% of the frame height (for Oz Biometry, from 15%, but not less than 112) * 40-60% of the frame width Landscape: * 50-80% of the frame height (for Oz Biometry, from 15%, but not less than 112) * 15-25% of the frame width Image format * JPG * JPEG [hashtag](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements#h.33gxlfc0963b) Documents Requirements ------------------------------------------------------------------------------------------------------------------------------- * No glares or shadows. * The background is not too bright. * The face on a photo is in focus and has no objects on it. * Minimum size of face on photo – 10% of the frame height, but not less than 112×112. * Photos of documents should not be compressed. [PreviousFAQchevron-left](https://doc.ozforensics.com/oz-knowledge/other/faq) [NextOz SDK Media Quality Checkschevron-right](https://doc.ozforensics.com/oz-knowledge/other/oz-sdk-media-quality-checks) Last updated 1 year ago Was this helpful? * [Common Media Requirements](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements#h.y1nmy3kgxvj) * [Video Quality Requirements](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements#h.j2c6cxdjrkzr) * [Image Quality Requirements](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements#h.picbxtifpkq0) * [Documents Requirements](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements#h.33gxlfc0963b) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Compatibility | Oz Knowledge Oz Forensics System is supported by most modern operating systems and mobile devices. Also, it can be provided as Docker containers. Please check the compatibility matrix below. **Module** **Compatibility** * Oz API * Oz Liveness * Oz Biometry * Oz Web UI * Oz Liveness Web Adapter Recommended OS versions with corresponding containers. If you use another version, please consult with our team. * Redhat 7: Docker * Redhat 8: Podman\* * Redhat 9: Podman\* * Oracle Linux 9: Podman\* * CentOS 9: Podman\* * Debian 10: Docker * Debian 12: Podman\* * Ubuntu 22.04 LTS: Podman\* * Amazon Linux 2023: Podman\* Oz Android SDK * Android 5+ Oz iOS SDK * iOS 11+ Oz Liveness Web Plugin Browsers with JavaScript ES6 support. Please check the [Browser compatibility](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/browser-compatibility) \*Please note: 1. We do not support Podman installation for API 6 and above. 2. By default, the Podman containers do not automatically start after system reboot. To enable automatic startup, apply this patch. Copy sed -i 's/always/unless-stopped/g' /usr/lib/systemd/system/podman-restart.service systemctl daemon-reload You may also refer to the [Linux documentationarrow-up-right](https://linuxhandbook.com/autostart-podman-containers/) for further assistance. [PreviousMedia File Size Overviewchevron-left](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview) [NextHybrid Livenesschevron-right](https://doc.ozforensics.com/oz-knowledge/other/hybrid-liveness) Last updated 5 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Media Tags | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags#what-are-tags-for) What Are Tags for ----------------------------------------------------------------------------------------------------------------------------------------- To work properly, the resolution algorithms need each uploaded media to be marked with special tags. For video and images, the tags are different. They help algorithms to identify what should be in the photo or video and analyze the content. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags#tags-for-video-files) Tags for Video Files ----------------------------------------------------------------------------------------------------------------------------------------------- The following tag types should be specified in the system for video files. * To identify the data type of the video: * `video_selfie` * To identify the orientation of the video: * `orientation_portrait` – portrait orientation; * `orientation_landscape` – landscape orientation. * To identify the action on the video: * `video_selfie_left` – head turn to the left; * `video_selfie_right` – head turn to the right; * `video_selfie_down` – head tilt downwards; * `video_selfie_high` – head raise up; * `video_selfie_smile` – smile; * `video_selfie_eyes` – blink; * `video_selfie_scan` – scanning; * `video_selfie_oneshot` – a one-frame analysis; * `video_selfie_blank` – no action. The tags listed allow the algorithms recognizing the files as suitable for the [Quality](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#quality-liveness-best-shot) (Liveness) and [Biometry](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#biometry) analyses. Important: in API 4.0.8 and below, to launch the Quality analysis for a photo, pack the image into a .zip archive, apply the `SHOTS_SET` type, and mark it with `video_*.` Otherwise, it will be ignored by algorithms. Example of the correct tag set for a video file with the “blink” action: [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags#tags-for-photo-files) Tags for Photo Files ----------------------------------------------------------------------------------------------------------------------------------------------- The following tag types should be specified in the system for photo files: * A tag for selfies: * `photo_selfie` – to identify the image type as “selfie”. * Tags for photos/scans of ID cards: * `photo_id` – to identify the image type as “ID”; * `photo_id_front` – for the photo of the ID front side; * `photo_id_back` – for the photo of the ID back side (ignored for any other analyses like [Quality](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#quality-liveness-best-shot) or [Biometry](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#biometry) ). Important: in API 4.0.8 and below, to launch the Quality analysis for a photo, pack the image into a .zip archive, apply the `SHOTS_SET` type, and mark it with `video_*.` Otherwise, it will be ignored by algorithms. Example of the correct tag set for a “selfie” photo file: Example of the correct tag set for a photo file with the face side of an ID card: Example of the correct set of tags for a photo file of the back of an ID card: [PreviousStatuses in APIchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api) [NextMetadatachevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata) Last updated 3 months ago Was this helpful? * [What Are Tags for](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags#what-are-tags-for) * [Tags for Video Files](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags#tags-for-video-files) * [Tags for Photo Files](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags#tags-for-photo-files) Was this helpful? sun-brightdesktopmoon Copy "video1": [\ "video_selfie",\ "video_selfie_eyes",\ "orientation_portrait"\ ] Copy "photo1": [\ "photo_selfie"\ ] Copy "photo1": [\ "photo_id",\ "photo_id_front"\ ] Copy "photo1": [\ "photo_id",\ "photo_id_back"\ ] sun-brightdesktopmoon --- # Rules of Assigning Analyses | Oz Knowledge Analyses in Oz system can be applied in two ways: * manually, for instance, when you choose the Liveness scenario in our demo application; * automatically, when you don’t choose anything and just assign all possible analyses (via API or SDK). The automatic assignment means that Oz system decides itself what analyses to apply to media files based on its [tags](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags) and type. If you upload files via the web console, you select the tags needed; if you take photo or video via Web SDK, the SDK picks the tags automatically. As for the media type, it can be `IMAGE` (a photo)/`VIDEO`/`SHOTS_SET`, where `SHOTS_SET` is a .zip archive equal to video. Below, you will find the tags and type requirements for all analyses. If a media doesn’t match the requirements for the certain analysis, this media is ignored by algorithms. The rules listed below act by default. To change the mapping configuration, please [contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#d2bbbcb4bd92bda8b4bda0b7bca1bbb1a1fcb1bdbf) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.u3oofd1yob8x) [Quality (Liveness)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#quality-liveness-best-shot) This analysis is applied to all media, regardless of the [gesture](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness) recorded (gesture tags begin from `video_selfie`). **Important**: to process a photo in API 4.0.8 and below, pack it into a .zip archive, apply the `SHOTS_SET` type, and mark it with `video_*.` Otherwise, it will be ignored. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.cof1fpf9g1n9) [Biometry](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#biometry) This analysis is applied to all media. If the folder contains less than two matching media files, the system will return an error. If there are more than two files, then all pairs will be compared, and the system will return a result for the pair with the least similar faces. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.a3bckcn8f9x5) [Collection](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#blacklist) This analysis works only when you have a pre-made image database, which is called collection. The analysis is applied to all media in the folder (or the ones marked as source media). ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.qiipj36r6mhw) [Best Shot](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#quality-liveness-best-shot) Best Shot is an addition to the Quality (Liveness) analysis. It requires the appropriate option enabled. The analysis is applied to all media files that can be processed by the Quality analysis. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.6wezm218un2o) [Documents](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#documents) circle-info This analysis type is deprecated. The Documents analysis is applied to images with tags `photo_id_front` and `photo_id_back` (documents), and `photo_selfie` (selfie). The result will be positive if the system finds the selfie photo and matches it with a photo on one of the valid documents from the following list: * personal ID card * driver license * foreign passport ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#tag-related-errors) Tag-Related Errors **Code** **Message** **Description** 202 Could not locate face on source media `[media_id]` No face is found in the media that is being processed, or the source media has wrong (`photo_id_back`) or/and missing tag used for the media. 202 Biometry. Analysis requires at least 2 media objects to process The algorithms did not find the two appropriate media for analysis. This might happen when only a single media has been sent for the analysis, or a media is missing a tag. 202 Processing error - did not found any document candidates on image The Documents analysis can't be finished because the photo uploaded seems not to be a document, or it has wrong (not `photo_id_*`) or/and missing tags. 5 Invalid/missed tag values to process quality check The tags applied can't be processed by the Quality algorithm (most likely, the tags begin from `photo_*`; for Quality, they should be marked as `video_*`) 5 Invalid/missed tag values to process collection check The tags applied can't be processed by the Collection algorithm. This might happen when a media is missing a tag. [PreviousTypes of Analyses and What They Checkchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check) [NextStatuses in APIchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api) Last updated 3 months ago Was this helpful? * [Quality (Liveness)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.u3oofd1yob8x) * [Biometry](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.cof1fpf9g1n9) * [Collection](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.a3bckcn8f9x5) * [Best Shot](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.qiipj36r6mhw) * [Documents](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#h.6wezm218un2o) * [Tag-Related Errors](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses#tag-related-errors) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Migration to OzCapsula | Oz Knowledge This guide describes the migration to the latest OzCapsula architecture: the approach where you use an encrypted container to securely transmit data between frontend and backend. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#id-2.-minimal-supported-versions) Component Version Requirements ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Before starting the migration, ensure that all components are updated to the minimum required versions: * **API:** 6.4.2. * **Web SDK:** 1.9.2. * **Native SDKs (iOS / Android):** 8.22. triangle-exclamation Older versions are **not compatible** with the new capture and analysis flow. circle-info For best results, migrate all components simultaneously and avoid partial upgrades. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#id-3.-authentication-changes) Authentication Changes ---------------------------------------------------------------------------------------------------------------------------------------------------------- All capture sessions now require a `session_token` issued by the backend. * The token must be obtained **before** starting video capture. * It is tied to the current session and the specific container. * The token has a limited lifetime. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#migration-actions) **Migration actions** * Implement a backend call to obtain `session_token`. * Pass the token explicitly when creating the capture screen. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#id-4.-high-level-flow-changes) Flow Changes ------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#before-migration-legacy-flow) Before Container (Legacy Flow) 1. You launch media capture. 2. Media is captured. 3. Media along with required data is sent to Oz API (using your backend as intermediate if needed). ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#after-migration-new-flow) With Container (New Flow) 1. You request `session_token` from backend. 2. You put additional data like metadata (if needed) into container and launch video capture with `session_token`. 3. SDK captures media, packages it into container, and returns an encrypted file. 4. The encrypted file is sent to Oz API (using your backend as intermediate if needed). ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#migration-actions-1) Migration actions #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#api) API * Upgrade to v**6.4.1-40** or higher. * Switch `Content-Type` of data you send to `application/octet-stream`. * For Instant API, obtain private and public keys as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container) . #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#web-sdk) Web SDK * Upgrade to v**1.9.2** or higher. * Ensure backend supports `session_token`. * In the configuration file, set `use_wasm_container` to true and `api_use_session_token` to `api` or `client` (please refer to [this article](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#api_use_session_token-client) for details). * Update initialization to pass token explicitly. * If you use the `capture` architecture type, ensure you receive and send to your backend and then to us a **blob** object (`application/octet-stream`). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#mobile-sdks) Mobile SDKs * Upgrade to v**8.22** or higher. * Ensure backend supports `session_token`. * Implement new interfaces as described below. **Android** 1 Launching Capture Screen Container flow Old flow 2 Delegate Container flow Old flow 3 Launching Analysis Container flow Old flow **iOS** 1 Launching Capture Screen Container flow Old flow 2 Delegate Container flow Old flow 3 Launching Analysis Container flow Old flow [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#migration-checklist) Migration Checklist ---------------------------------------------------------------------------------------------------------------------------------------------- * check API is updated to 6.4.1 or newer, with `session_token` supported. * check `Content-Type` is changed to `application/octet-stream`. * check For Instant API, private and public keys are obtained. * check Mobile SDKs are updated to 8.22 or newer. * check Added the `session_token` backend call. * check New public interface is implemented: `createMediaCaptureScreen` with `CaptureRequest`. * check Web SDK is updated to 1.9.2 or newer. * check `use_wasm_container` is set to `true`. * check `api_use_session_token` is set to `api` or `client`. * check If `api_use_session_token` = `client`, `session_token` is requested before session and passed in `open.options()`. [PreviousGeneral Security Recommendationschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/general-security-recommendations) [NextAPIchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api) Last updated 21 hours ago Was this helpful? * [Component Version Requirements](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#id-2.-minimal-supported-versions) * [Authentication Changes](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#id-3.-authentication-changes) * [Migration actions](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#migration-actions) * [Flow Changes](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#id-4.-high-level-flow-changes) * [Before Container (Legacy Flow)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#before-migration-legacy-flow) * [With Container (New Flow)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#after-migration-new-flow) * [Migration actions](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#migration-actions-1) * [Migration Checklist](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/migration-to-ozcapsula#migration-checklist) Was this helpful? sun-brightdesktopmoon Copy val sessionToken: String = getSessionToken() val captureRequest = CaptureRequest( listOf( AnalysisProfile( Analysis.Type.QUALITY, listOf(MediaRequest.ActionMedia(OzAction.Blank)), ) ) ) val intent = OzLivenessSDK.createMediaCaptureScreen(captureRequest, sessionToken) startActivityForResult(intent, REQUEST_LIVENESS_CONTAINER) Copy val intent = OzLivenessSDK.createStartIntent(listOf(OzAction.Blank)) startActivityForResult(intent, REQUEST_LIVENESS_MEDIA) Copy override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_LIVENESS_CONTAINER) { when (resultCode) { OzLivenessResultCode.SUCCESS -> runAnalysis(OzLivenessSDK.getContainerFromIntent(data)) OzLivenessResultCode.USER_CLOSED_LIVENESS -> { /* user closed the screen */ } else -> { val errorMessage = OzLivenessSDK.getErrorFromIntent(data) /* show error */ } } } } Copy override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_LIVENESS_MEDIA) { when (resultCode) { OzLivenessResultCode.SUCCESS -> runAnalysis(OzLivenessSDK.getResultFromIntent(data)) OzLivenessResultCode.USER_CLOSED_LIVENESS -> { /* user closed the screen */ } else -> { val errorMessage = OzLivenessSDK.getErrorFromIntent(data) /* show error */ } } } } Copy private fun runAnalysis(container: DataContainer?) { if (container == null) return AnalysisRequest.Builder() .addContainer(container) .build() .run( { result -> val isSuccess = result.analysisResults.all { it.resolution == Resolution.SUCCESS } }, { /* show error */ }, { /* update status */ }, ) } Copy private fun runAnalysis(media: List?) { if (media.isNullOrEmpty()) return AnalysisRequest.Builder() .addAnalysis(Analysis(Analysis.Type.QUALITY, Analysis.Mode.SERVER_BASED, media)) .build() .run( { result -> val isSuccess = result.analysisResults.all { it.resolution == Resolution.SUCCESS } }, { /* show error */ }, { /* update status */ }, ) } Copy getSessionToken() { sessionToken in DispatchQueue.main.async { do { let action:OZVerificationMovement = .selfie let mediaRequest = MediaRequest.action(action) let profile = AnalysisProfile(mediaList: [mediaRequest], type: .quality, params: [:] ) let request = CaptureRequest(analysisProfileList: [profile], cameraPosition: .front) let ozLivenessVC = try OZSDK.createMediaCaptureScreen(self, request, sessionToken: sessionToken) self.present(ozLivenessVC, animated: true) } catch let error { print(error.localizedDescription) } } } Copy do { let ozLivenessVC : UIViewController = try OZSDK.createVerificationVCWithDelegate(self, actions: .selfie)    self.present(ozLivenessVC, animated: true) } catch let error { print(error.localizedDescription) } Copy extension ViewController: LivenessDelegate { func onResult(container: DataContainer) { } func onError(status: OZVerificationStatus?) { } } Copy extension ViewController: OZLivenessDelegate { func onOZLivenessResult(results: [OZMedia]) { } func onError(status: OZVerificationStatus?) { } } Copy func onResult(container: DataContainer) { let analysisRequest = AnalysisRequestBuilder() analysisRequest.addContainer(container) analysisRequest.run( statusHandler: { status in }, errorHandler: { error in } ) { result in } } Copy func onResult(results: [OZMedia]) { let analysisRequest = AnalysisRequestBuilder() let analysis = Analysis(media: results, type: .quality, mode: .serverBased, params: nil) analysisRequest.addAnalysis(analysis) analysisRequest.run { status in } errorHandler: { error in } completionHandler: { results in } } sun-brightdesktopmoon --- # Deployment Architecture | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#terms-and-definitions) Terms and Definitions ------------------------------------------------------------------------------------------------------------------------------------------------------- Term Description APM Analyses per minute. Please note: * Analysis is a request for Quality (Liveness) or Biometry analysis using a single media. * A single analysis with multiple media counts as separate analyses in terms of APM. * Multiple analysis types on single media (two media for Biometry) count as separate analyses in terms of APM. PoC Proof of Concept Node A Node is a worker machine. Can be either a virtual or a physical machine. HA High availability K8s Kubernetes SC StorageClass RWX ReadWriteMany [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#components-description) Components' Description ---------------------------------------------------------------------------------------------------------------------------------------------------------- Oz API components: * **APP** is the API front app that receives REST requests, performs preprocessing, and creates tasks for other API components. * **Celery** is the asynchronous task queue. API has the following celery queues: * **Celery-default** processes system-wide tasks. * **Celery-maintenance** processes maintenance tasks. * **Celery-tfss** processes analysis tasks. * **Celery-resolution** checks for completion of all nested analyses within a folder and changes folder status. * **Celery-preview\_convert** creates a video preview for media. * **Celery-beat** is a CronJob for managing maintenance celery tasks. * **Celery-Flower** is a Celery metrics collector. * **Celery-regula** (optional) processes document analysis tasks. * **Redis** is a message broker and result backend for Celery. * **RabbitMQ** (optional) can be used as a message broker for Celery instead of Redis. * **Nginx** serves static media files for external HTTP(s) requests. * **1:N** (optional) processes the Blacklist analysis. * **Statistic** (optional) provides [statistics](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics) ' collection for Web UI. * **Web UI** provides the [web interface](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui) . **BIO-Updater** checks for models updates and downloads new models. **Oz BIO (TFSS)** runs TensorFlow with AI models and makes decisions for incoming media. triangle-exclamation The **BIO-Updater** and **BIO** components require access to the following external resources: * [https://api.cryptlex.com/arrow-up-right](https://api.cryptlex.com/) * [https://\*.infra.ozforensics.ai/arrow-up-right](https://ozforensics.atlassian.net/wiki/spaces/TECHNICALS/pages/808976400/Deployment+architecture#) * [https://\*.s3.amazonaws.com/arrow-up-right](https://ozforensics.atlassian.net/wiki/spaces/TECHNICALS/pages/808976400/Deployment+architecture#) * [https://\*.s3-accelerate.amazonaws.com/arrow-up-right](https://*.s3-accelerate.amazonaws.com/) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#deployment-scenarios) Deployment Scenarios ----------------------------------------------------------------------------------------------------------------------------------------------------- The deployment scenario depends on the workload you expect. Small Business or PoC Medium Load High Use cases * Testing/Development purposes * Small installations with low number of APM * Typical usage with moderate load * High load with HA and autoscaling * Usage with cloud provider Expected workload * ~6-8 APM * ~250 000 analyses per month * ~40-60 APM * 500 000 to 1 000 000 analyses per month * 60+ APM * 1 000 000+ analyses per month Environment Docker Docker Kubernetes HA No Partially Yes Pros * Requires a minimal amount of computing resources * Low complexity, so no high-qualified engineers are needed on-site * Easy to manage and support * Partially supports HA * Can be scaled up to support higher workload * HA and autoscaling * Observability and manageability * Allows high workload and can be scaled up Cons * Suitable only for low loads, no high APM * No scaling and high-availability * API HA requires precise balancing * Higher staff qualification requirements * High staff qualification requirements * Additional infrastructure requirements External resource requirements PostgreSQL * PostgreSQL * Shared volume (R/W) * For Kubernetes deployments: * K8s v1.25+ * ingress-nginx * clusterIssuer * kube-metrics * Prometheus * clusterAutoscaler * PostgreSQL * Shared volume (R/W) * Redis Autoscaling is implemented on the basis of ClusterAutoscaler and must be supported by your infrastructure. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#small-business-poc) Small business or PoC Please find the installation guide here: [Docker](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-docker) . * Type of containerization: Docker, * Type of installation: Docker compose, * Autoscaling/HA: none. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#requirements) Requirements **Software** * Docker 19.03+, * Podman 4.4+ (for API 5 only), * Python 3.4+. **Storage** * Depends on media quality, the type and number of analyses, and the required archive depth. * May be calculated as: \[average media size\] \* 2 \* \[analyses per day\] \* \[archive depth in days\]. Please refer to [this article](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview) for media size reference. * Each analysis request performs read and write operations on the storage. Any additional latency in these operations will impact the analysis time. **Staff qualification**: * Basic knowledge of Linux and Docker. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#deployment) Deployment 1. Single node. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FlvgnvPY0OWpBIMR4dWr3%252Fpoc%25201%2520node.png%3Falt%3Dmedia%26token%3D4dec388d-a0fd-4f67-b8a8-2afe2caa490e&width=768&dpr=3&quality=100&sign=f3dc405a&sv=2) Resources: * 1 node, * 16 CPU/32 RAM. 1. Two nodes. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FaeuxEZ3qO7HcwOxuNlwT%252Fpoc%25202%2520nodes.png%3Falt%3Dmedia%26token%3D0047a4aa-4a2f-447e-9f70-2e7706ede47d&width=768&dpr=3&quality=100&sign=9a1dfe3b&sv=2) Resources: * 2 nodes, * 16 CPU/32 RAM for the first node; 8 CPU/16 RAM for the second node. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#medium-load) Medium Load Please find the installation guide here: [Docker](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-docker) . * Type of containerization: Docker (Podman is supported for API 5 only), * Type of installation: Docker compose, * Autoscaling/HA: manual scaling; HA is partially supported. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#requirements-1) Requirements **Computational resources** Depending on load, you can change the number of nodes. However, for 5+ nodes, we recommend that you proceed to the High Load section. * From 2 to 4 Docker nodes (see [schemes](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#deployment-1) ): * 2 Nodes: * 24 CPU/32 RAM per node. * 3 Nodes: * 16 CPU/24 RAM per node. * 4 Nodes: * 8 CPU/16 RAM for two nodes (each), * 16 CPU/24 RAM for two nodes (each). We recommend using external self-managed PostgreSQL database and NFS share. **Software** * Docker 19.03+, * Podman 4.4+ (for API 5 only), * Python 3.4+. **Storage** * Depends on media quality, the type and number of analyses, and the required archive depth. * May be calculated as: \[average media size\] \* 2 \* \[analyses per day\] \* \[archive depth in days\]. Please refer to [this article](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview) for media size reference. * Each analysis request performs read and write operations on the storage. Any additional latency in these operations will impact the analysis time. **Staff qualification**: * Advanced knowledge of Linux, Docker, and Postgres. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#deployment-1) Deployment 2 nodes: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FzkkB1h2sDHT6t4tFAkoH%252Fmedium%25202%2520nodes.png%3Falt%3Dmedia%26token%3D8f314bab-5a54-4f2d-bfc5-d51eb3943027&width=768&dpr=3&quality=100&sign=38222470&sv=2) 3 nodes: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F3TJOHzzu8M5aujlcPXLJ%252Fmedium%25203%2520nodes.png%3Falt%3Dmedia%26token%3D666488cc-4dcc-47a0-b8b2-965323436ffe&width=768&dpr=3&quality=100&sign=62f0d7&sv=2) 4 nodes: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FvHeyhHkSZP8kICxi7EGw%252Fmedium%25204%2520nodes.png%3Falt%3Dmedia%26token%3Dcdb33a6a-509a-447e-94a2-b1b18cbcf39f&width=768&dpr=3&quality=100&sign=49acca90&sv=2) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#high-load) High Load Please find the installation guide here: [Kubernetes](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes) . * Type of containerization: Docker containers with Kubernetes orchestration, * Type of installation: Helm charts, * Autoscaling/HA: supports autoscaling; HA for most components. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#requirements-2) Requirements **Computational resources** 3-4 nodes. Depending on load, you can change the number of nodes. * 16 CPU/32 RAM Nodes for the BIO pods, * 8+ CPU/16+ RAM Nodes for all other workload. We recommend using external self-managed PostgreSQL database. triangle-exclamation Requires RWX (ReadWriteMany) StorageClass or NFS share. **Software** * Docker 19.03+, * Python 3.4+. **Storage** * Depends on media quality, the type and number of analyses, and the required archive depth. * May be calculated as: \[average media size\] \* 2 \* \[analyses per day\] \* \[archive depth in days\]. Please refer to [this article](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview) for media size reference. * Each analysis request performs read and write operations on the storage. Any additional latency in these operations will impact the analysis time. **Staff qualification**: * Advanced knowledge of Linux, Docker, Kubernetes, and Postgres. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#deployment-scheme) Deployment Scheme ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FjLlkxPEVbPD0qgqVQO1J%252Fhigh.png%3Falt%3Dmedia%26token%3D7886169d-6523-4821-832b-9668784e79f5&width=768&dpr=3&quality=100&sign=896e0fa1&sv=2) [PreviousAdministrator Guidechevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide) [NextInstallation in Dockerchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-docker) Last updated 2 months ago Was this helpful? * [Terms and Definitions](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#terms-and-definitions) * [Components' Description](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#components-description) * [Deployment Scenarios](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#deployment-scenarios) * [Small business or PoC](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#small-business-poc) * [Medium Load](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#medium-load) * [High Load](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#high-load) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Web Plugin (Web SDK Frontend part) | Oz Knowledge Web Plugin is a plugin called by your web application. It works in a browser context. The Web Plugin communicates with Web Adapter, which, in turn, communicates with Oz API. Please find a sample for Oz Liveness Web SDK [herearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web/-/blob/master/OzLivenessWebSDKSample.html) . To make it work, replace `` with the Web Adapter URL you've received from us. For the samples below, replace `https://web-sdk.sandbox.ohio.ozforensics.com` in index.html. * [Angulararrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-angular) sample * [Reactarrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-react/-/tree/main) sample * [Vuearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-vue) sample * [Sveltearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-svelte) sample ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F1PxH5zx2mkP6Tl56fVNT%252Fcomponents-public-webplugin.svg%3Falt%3Dmedia%26token%3D207324ec-2ffc-4cde-8fed-32eb383e3b86&width=768&dpr=3&quality=100&sign=537dd618&sv=2) [Adding the Plugin to Your Web Pagechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/adding-the-plugin-to-your-web-page) [Launching the Pluginchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/launching-the-plugin) [Closing or Hiding the Pluginchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/closing-or-hiding-the-plugin) [Localization: Adding a Custom Language Packchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/localization-adding-a-custom-language-pack) [Look-and-Feel Customizationchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/look-and-feel-customization) [Security Recommendationschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/security-recommendations) [Browser Compatibilitychevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/browser-compatibility) [No-Server Licensingchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/no-server-licensing) [PreviousOz Liveness Web SDKchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk) [NextAdding the Plugin to Your Web Pagechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/adding-the-plugin-to-your-web-page) Last updated 1 month ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # System Objects | Oz Knowledge ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.ggouwc3sh8vi) Objects Hierarchy System objects on Oz Forensics products are hierarchically structured as shown in the picture below. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FhG2RBicGbU9rS5S17wCx%252Fsystem%2520objects.drawio%2520%281%29.png%3Falt%3Dmedia%26token%3D7ef3bbea-df7d-4b63-869b-0e2e4448ed6b&width=768&dpr=3&quality=100&sign=138cae7d&sv=2) On the top level, there is a **Company**. You can use one copy of Oz API to work with several companies. The next level is a **User**. A company can contain any amount of users. There are several roles of users with different permissions. For more information, refer to [User Roles](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) . When a user requests an analysis (or analyses), a new **folder** is created. This folder contains **media**. One user can create any number of folders. Each folder can contain any amount of media. A user applies **analyses** to one or more media within a folder. The rules of assigning analyses are described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses) . The media quality requirements are listed on [this page](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.8qbhvc9qlj0s) Object parameters #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.t7l2z4e3z113) Common parameters Parameter Type Description time\_created Timestamp Object (except user and company) creation time time\_updated Timestamp Object (except user and company) update time meta\_data Json Any user parameters technical\_meta\_data Json Module-required parameters; reserved for internal needs Besides these parameters, each object type has specific ones. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.n8d1ba6kh8gn) Company Parameter Type Description company\_id UUID Company ID within the system name String Company name within the system #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.s4vjermbphm2) User Parameter Type Description user\_id UUID User ID within the system user\_type String [User roles](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) ​​first\_name String Name last\_name String Surname middle\_name String Middle name email String User email = login password String User password (only required for new users or to change) can\_start\_analyze\_\* String Depends on [user roles](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) company\_id UUID Current user company’s ID within the system is\_admin Boolean ​​Whether this user is an [admin](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) or not is\_service Boolean ​​Whether this user account is [service](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) or not #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.cs9qx3iyult) Folder Parameter Type Description folder\_id UUID Folder ID within the system resolution\_status ResolutionStatus The latter analysis status #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.85wv26msdlji) Media Parameter Type Description media\_id UUID Media ID original\_name String Original filename (how the file was called on the client machine) original\_url Url HTTP link to this file on the API server tags Array(String) List of [tags](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags) for this file #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.pbaoihdesmt6) Analysis Parameter Type Description analyse\_id UUID ID of the analysis folder\_id UUID ID of the folder type String Analysis type (BIOMETRY\\QUALITY\\DOCUMENTS) results\_data JSON Results of the analysis [PreviousUsing a Webhook to Get Resultschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/using-a-webhook-to-get-results) [NextUser Roleschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) Last updated 2 years ago Was this helpful? * [Objects Hierarchy](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.ggouwc3sh8vi) * [Object parameters](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects#h.8qbhvc9qlj0s) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Hybrid Liveness | Oz Knowledge Since Android and iOS 8.0.0, we have introduced the hybrid Liveness analysis mode. It is a combination of the on-device and server-based analyses that sums up the benefits of these two modes. If the on-device analysis is uncertain about the real human presence, the system initiates the server-based analysis, otherwise, no additional analyses are done. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/hybrid-liveness#benefits-of-the-hybrid-liveness) Benefits of the Hybrid Liveness * **You need less computational capacity**: in the majority of cases there's no need to apply the server-side analyses and fewer requests are being sent back and forth. On Android, only 8-9% of analyses require an additional server check, on iOS, it's 4.5-5.5%. * **The accuracy is similar to the one of the server-based analysis**: if the on-device analysis result is uncertain, the server analysis is launched. We offer the hybrid analysis as one of the default analysis modes, but you can also implement your own logic of hybrid analysis by combining the server-based and on-device analyses in your code. * **Since the 8.3.0 release, you get the analysis result faster, and less data will be transmitted (by up to 10 times)**: the on-device analysis is enough in the majority of cases so that you don’t need to upload the full video to analyze it on the server, and, therefore, don’t send or receive the additional data. The customer journey gets shorter. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/hybrid-liveness#how-to-enable-hybrid-liveness) How to Enable Hybrid Liveness The hybrid analysis has been available in our native (mobile) SDKs since 8.0.0. As we mentioned before, the server-based analysis is launched in the minority of cases, as if the analysis on your device has finished with a certain answer, there’s no need for a second check. This results in less server resources involved. To enable hybrid mode on Android, when you [launch the analysis](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/checking-liveness-and-face-biometry) , set `Mode` to `HYBRID`. [To do the same on iOS](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/checking-liveness-and-face-biometry) , you need to set `mode` to `hybrid`. That’s all, as easy as falling off a log. If you have any questions left, we’ll be happy to [answer themenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#1970777f765976637f766b7c776a707a6a377a7674) . [PreviousCompatibilitychevron-left](https://doc.ozforensics.com/oz-knowledge/other/compatibility) [NextTips and Trickschevron-right](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks) Last updated 1 year ago Was this helpful? * [Benefits of the Hybrid Liveness](https://doc.ozforensics.com/oz-knowledge/other/hybrid-liveness#benefits-of-the-hybrid-liveness) * [How to Enable Hybrid Liveness](https://doc.ozforensics.com/oz-knowledge/other/hybrid-liveness#how-to-enable-hybrid-liveness) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Installation and Licensing | Oz Knowledge circle-exclamation If you use Oz Web SDK via SaaS, please contacts our engineers. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing#installation) Installation ---------------------------------------------------------------------------------------------------------------------------------------------------- Our engineers will help you to install Oz Web SDK using the [standalone installer](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone) (requires your technical personnel to take part) or manually (everything is done by us). Once installed, the adapter part generates the plugin files: file with styles (`ozliveness.css`) and the primary script of the plugin (`plugin_liveness.php`). [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing#licensing) Licensing ---------------------------------------------------------------------------------------------------------------------------------------------- circle-info This part covers the license update process as the license is installed during the SDK installation; but a new license can be installed in the same way. To generate the license, we need the domain name of the website where you are going to use Oz Forensics Web SDK, for instance, your-website.com. You can also define subdomains. circle-info To find the origin, in the developer mode, run `window.origin` on the page you are going to embed Oz Web SDK in. At localhost / 127.0.0.1, license can work without this information. 1. Unzip the file received: Copy unzip license.0000aaaa-00aa-00aa-00aa-00000aaaaa.WebSDK_your_website.2022-10-11.json.zip 2\. Copy the JSON license file to the host where you’ve deployed the container from the `ozforensics/oz-webliveness-dev:latest` image. **Example** Copy scp -i ~/ozforensics/keys/id_rsa-test-hostname-vm license.0000aaaa-00aa-00aa-00aa-00000aaaaa.WebSDK_your_website.2022-10-11.json user@hostname:/opt/oz/web-sdk * `-i ~/ozforensics/keys/id_rsa-test-hostname-vm` is the path to the public ssh key of your host license. * `0000aaaa-00aa-00aa-00aa-00000aaaaa.WebSDK_your_website.2022-10-11.json` is the JSON license file. * `user` is the username on host. * `hostname` is the host alias. * `/opt/oz/web-sdk` is the directory where you’ve deployed the Web SDK container. 3\. Replace the license file. **Example** 4\. Restart the Web SDK container for the new license to be applied. **Example** * `web-sdk` is the name of the container you’ve deployed from the `ozforensics/oz-webliveness-dev:latest` image. Once the license is added, the system will verify its validity on launch. You can also check it manually: `[GET] /check_license.php`. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing#license-errors) License Errors **Error** **Description** License error. License at <> not found Cannot find the license file License error. Cannot parse license from <>, invalid format The license containing is somehow invalid: e.g., incorrect JSON License error. Current date is later than license expiration date Your license has expired and needs renewal License error. Origin is not in the list permitted by license Your domain or subdomain name can't be found in the list of allowed URLs [PreviousWeb Adapter (Web SDK Backend) Configurationchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter) [NextConfiguration File Settingschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-file-settings) Last updated 11 months ago Was this helpful? * [Installation](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing#installation) * [Licensing](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing#licensing) * [License Errors](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing#license-errors) Was this helpful? sun-brightdesktopmoon Copy ssh user@hostname -i ~/ozforensics/keys/id_rsa-test-hostname-vm sudo cp -v /opt/oz/web-sdk/license.license.0000aaaa-00aa-00aa-00aa-00000aaaaa.WebSDK_your_website.2022-10-11.json /opt/oz/web-sdk/license.json Copy ssh user@hostname -i ~/ozforensics/keys/id_rsa-test-hostname-vm sudo docker restart web-sdk sun-brightdesktopmoon --- # Oz API Lite Postman Collection | Oz Knowledge Download and install the Postman client from this [page.arrow-up-right](https://www.postman.com/downloads/) Then download the JSON file needed: #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/postman-collections#id-1.2.0) 1.2.0 file-download 11KB [Oz API Lite 1.2.0.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FxkEh33JQeVBs4d4SomGE%2FOz%20API%20Lite%201.2.0.json?alt=media&token=c8fc54f6-91f8-40ec-a4d9-560dcbee134f) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FxkEh33JQeVBs4d4SomGE%2FOz%20API%20Lite%201.2.0.json?alt=media&token=c8fc54f6-91f8-40ec-a4d9-560dcbee134f) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/postman-collections#id-1.1.1) 1.1.1 file-download 8KB [Oz API Lite 1.1.1.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FeUcUWdiHzXDXEZH76a4U%2FOz%20API%20Lite%201.1.1.postman_collection.json?alt=media&token=ba36ac8a-bb5c-45bf-a2c3-173dad8715e6) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FeUcUWdiHzXDXEZH76a4U%2FOz%20API%20Lite%201.1.1.postman_collection.json?alt=media&token=ba36ac8a-bb5c-45bf-a2c3-173dad8715e6) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/postman-collections#how-to-import-a-postman-collection) How to Import a Postman Collection: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Launch the client and import Oz API Lite collection for Postman by clicking the **Import** button: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F1txFiF23NT6Sv4toYwss%252FScreenshot_9.png%3Falt%3Dmedia%26token%3D1da2c524-8684-4e2e-a891-8dd2c9f2098b&width=768&dpr=3&quality=100&sign=92d3d0a9&sv=2) Click **files**, locate the JSON needed, and hit **Open** to add it: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FcFXmoxEs1fnEmlKXXb8T%252Fpostman_import.jpg%3Falt%3Dmedia%26token%3Dfb1e4ff3-258a-410d-a6a0-6a14a398c259&width=768&dpr=3&quality=100&sign=69187a17&sv=2) The collection will be imported and will appear in the Postman interface: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FniDzKnaWXc20uljyp2CX%252FScreenshot_12.png%3Falt%3Dmedia%26token%3Dd95ad822-df40-4b5b-86c2-aa8e873a0b1b&width=768&dpr=3&quality=100&sign=8f5a3556&sv=2) [PreviousAPI Lite Methodschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods) [NextChangelogchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/changelog) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Server Configuration via Environment Variables | Oz Knowledge * `WA_CORS_ORIGINS` defines what sources are allowed to make requests. The's no default value. Please bear in mind that if you don't set this value, the CORS headers will be switched off and no such headers will be added within the Web SDK container. * `WA_CORS_METHODS`_(optional)_ – HTTP methods allowed to use. If the variable is not set, it gets the default value, which is `'GET, POST, OPTIONS'`. If the variable is not used, any method is accepted. * `WA_CORS_HEADERS`_(optional)_ – HTTP headers allowed to use. If the variable is not set, it gets the default value which is `'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,traceparent,esid'`. If the variable is not used, any header is accepted. An example of using environment variables for server configuration: Copy docker run -d -p 80:80 \ -e WA_CORS_ORIGINS='*' \ -e WA_CORS_METHODS='GET, POST, OPTIONS' \ -e WA_CORS_HEADERS=DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,traceparent,esid \ ozforensics/oz-webliveness:{tag} [PreviousConfiguration Using Environment Variableschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-using-environment-variables) [NextOz API Configurationchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration) Last updated 9 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Types of Analyses and What They Check | Oz Knowledge Using Oz API, you can perform one of the following analyses: * [biometry](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#biometry) , * [quality (liveness, best shot)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#quality-liveness-best-shot) , * [documents](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#documents) (deprecated), * [collection (1:N)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#blacklist) . circle-exclamation The possible results of the analyses are explained [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#rezultat-analiza-analyse.resolution_status) . Each of the analyses has its threshold that determines the output of these analyses. By default, the threshold for Liveness is 0.5 or 50%, for Collection and Biometry (Face Matching) – 0.85 or 85%. * Biometry: if the final score is equal to or above the threshold, the faces on the analyzed media are considered similar. * Collection: if the final score is equal to or above the threshold, the face on the analyzed media matches with one of the faces in the database. * Quality: if the final score is equal to or above the threshold, the result is interpreted as an attack. To configure the threshold depending on your needs, please [contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#ea83848c85aa85908c85988f8499838999c4c4898587) . For more information on how to read the numbers in analyses' results, please refer to [Quantitative Results](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/quantitative-results) . [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#biometry) Biometry -------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#purpose) Purpose The Biometry algorithm allows comparing several media and check if the people on them are the same person or not. As sources, you can use images, videos, and scans of documents (with photo). To perform the analysis, the algorithm requires at least two media (for details, please refer to [Rules of Assigning Analyses](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses) ). ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#output) Output After comparison, the algorithm provides a number that represents the similarity level. The number varies from 100 to 0% (1 to 0), where: * 100% (1) – faces are similar, media represent the same person, * 0% (0) – faces are not similar and belong to different people [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#quality-liveness-best-shot) Quality (Liveness, Best Shot) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#purpose-1) Purpose The Liveness detection (Quality) algorithm aims to check whether a person in a media is a real human acting in good faith, not a fake of any kind. The Best Shot algorithm checks for the best shot from a video (a best-quality frame where the face is seen the most properly). It is an addition to liveness. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#output-1) Output After checking, the analysis shows the chance of a spoofing attack in percents. * 100% (1) – an attack is detected, the person in the video is not a real living person, * 0% (0) – a person in the video is a real living person. \***Spoofing** in biometry is a kind of scam when a person disguises as another person using both program and non-program tools like deepfake, masks, ready-made photos, or fake videos. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#documents) Documents ---------------------------------------------------------------------------------------------------------------------------------------------------- circle-info This analysis type is deprecated. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#purpose-2) Purpose The Documents analysis aims to recognize the document and check if its fields are correct according to its type. circle-info _Oz API uses a third-party OCR analysis service provided by our partner. If you want to change this service to another one, please_ [_contact us_envelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#2861464e476847524e475a4d465b414b5b064b4745) _._ ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#output-2) Output As an output, you'll get a list of document fields with recognition results for each field and a result of checking that can be: * The documents passed the check successfully, * The documents failed to pass the check. Additionally, the result of Biometry check is displayed. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#collection-1-n) Collection (1:N) ---------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#purpose-3) Purpose The Collection checking algorithm is used to determine whether the person on a photo or video is present in the database of pre-uploaded images. The person's face is being compared with the faces of known swindlers or a list of VIPs depending on your needs. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#output-3) Output After comparison, the algorithm provides a number that represents the similarity level. The number varies from 100 to 0% (1 to 0), where: * 100% (1) – the person in an image or video matches with someone in the collection, * 0% (0) – the person is not found in the collection. [PreviousUser Roleschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) [NextRules of Assigning Analyseschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/rules-of-assigning-analyses) Last updated 3 months ago Was this helpful? * [Biometry](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#biometry) * [Purpose](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#purpose) * [Output](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#output) * [Quality (Liveness, Best Shot)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#quality-liveness-best-shot) * [Purpose](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#purpose-1) * [Output](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#output-1) * [Documents](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#documents) * [Purpose](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#purpose-2) * [Output](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#output-2) * [Collection (1:N)](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#collection-1-n) * [Purpose](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#purpose-3) * [Output](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check#output-3) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # User Guides | Oz Knowledge [Oz Demo Kitchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit) [Web UIchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/web-ui) [PreviousUploading and Analyzing Mediachevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/ios/uploading-and-analyzing-media) [NextOz Demo Kitchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit) Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Tips and Tricks | Oz Knowledge Here you will find useful tips and tricks that might ease your Oz journey. [PreviousHybrid Livenesschevron-left](https://doc.ozforensics.com/oz-knowledge/other/hybrid-liveness) [NextOz Liveness Gestures: Table of Correspondencechevron-right](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/oz-liveness-gestures-table-of-correspondence) Last updated 2 years ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz API Postman Collections | Oz Knowledge Download and install the Postman client from this [page.arrow-up-right](https://www.postman.com/downloads/) Then download the JSON file needed: ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#oz-api-postman-collections) **Oz API Postman collections** #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#id-6.0) 6.0 file-download 256KB [OZ-Forensic 6.0.0.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FizZOnCPm7YSS6o2bPlC1%2FOZ-Forensic%206.0.0.postman_collection.json?alt=media&token=9d6dcef0-d13b-4f35-a938-869de36c0e91) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FizZOnCPm7YSS6o2bPlC1%2FOZ-Forensic%206.0.0.postman_collection.json?alt=media&token=9d6dcef0-d13b-4f35-a938-869de36c0e91) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#id-6.0-instant-api) 6.0 [Instant API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode) file-download 10KB [OZ-Forensic Instant 6.0.0.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2F1tEFwsQZ5bXsKEwm1jv9%2FOZ-Forensic%20Instant%206.0.0.postman_collection.json?alt=media&token=a6986e8b-f785-47d0-a68f-0c4f299fb6e7) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2F1tEFwsQZ5bXsKEwm1jv9%2FOZ-Forensic%20Instant%206.0.0.postman_collection.json?alt=media&token=a6986e8b-f785-47d0-a68f-0c4f299fb6e7) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#id-5.3-and-5.2) 5.3 and 5.2 file-download 301KB [OZ-Forensic 5.2.0-.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2Fu9jJpWAZVFYfUW7JuBJM%2FOZ-Forensic%205.2.0-.postman_collection.json?alt=media&token=203337a3-d6f2-4918-9437-3f835ac1c00e) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2Fu9jJpWAZVFYfUW7JuBJM%2FOZ-Forensic%205.2.0-.postman_collection.json?alt=media&token=203337a3-d6f2-4918-9437-3f835ac1c00e) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#id-5.0) **5.0** Oz API 5.1.0 works with the same collection. file-download 299KB [OZ-Forensic 5.0.0.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FS8G4ceEqU5AnoaM1d873%2FOZ-Forensic%205.0.0.postman_collection.json?alt=media&token=398ee6f3-11d8-4b67-8d8d-aab308fdf76b) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FS8G4ceEqU5AnoaM1d873%2FOZ-Forensic%205.0.0.postman_collection.json?alt=media&token=398ee6f3-11d8-4b67-8d8d-aab308fdf76b) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#id-4.0) 4.0 file-download 165KB [OZ-Forensic 4.0.0.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2F9cnrUQnK3RYc5HGLZM8R%2FOZ-Forensic%204.0.0.postman_collection.json?alt=media&token=bf38b88e-f5b9-44c1-bc83-805ef2d9d013) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2F9cnrUQnK3RYc5HGLZM8R%2FOZ-Forensic%204.0.0.postman_collection.json?alt=media&token=bf38b88e-f5b9-44c1-bc83-805ef2d9d013) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#id-3.33) **3.33** file-download 168KB [OZ-Forensic 3.33.0.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FcevvE7bUs2OIpD1kmLYA%2FOZ-Forensic%203.33.0.postman_collection.json?alt=media&token=9ee90c88-1b48-4e0c-b08a-d870caa332f4) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FcevvE7bUs2OIpD1kmLYA%2FOZ-Forensic%203.33.0.postman_collection.json?alt=media&token=9ee90c88-1b48-4e0c-b08a-d870caa332f4) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#how-to-import-a-postman-collection) How to Import a Postman Collection: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Launch the client and import Oz API collection for Postman by clicking the **Import** button: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F1txFiF23NT6Sv4toYwss%252FScreenshot_9.png%3Falt%3Dmedia%26token%3D1da2c524-8684-4e2e-a891-8dd2c9f2098b&width=768&dpr=3&quality=100&sign=92d3d0a9&sv=2) Click **files**, locate the JSON needed, and hit **Open** to add it: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FcFXmoxEs1fnEmlKXXb8T%252Fpostman_import.jpg%3Falt%3Dmedia%26token%3Dfb1e4ff3-258a-410d-a6a0-6a14a398c259&width=768&dpr=3&quality=100&sign=69187a17&sv=2) The collection will be imported and will appear in the Postman interface: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fa9gUktybmhFQpkz8TOH3%252Fapi_pic.jpg%3Falt%3Dmedia%26token%3D373ea794-5486-4987-9724-805a822e406e&width=768&dpr=3&quality=100&sign=34666146&sv=2) [PreviousAPI Error Codeschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/http-return-codes) [NextChangelogchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog) Last updated 8 months ago Was this helpful? * [Oz API Postman collections](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#oz-api-postman-collections) * [How to Import a Postman Collection:](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#how-to-import-a-postman-collection) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz Web UI | Oz Knowledge ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fdcl1XiKUQLMjeLzUuXuP%252Fcomponents-public-webconsole.svg%3Falt%3Dmedia%26token%3D85e06430-82b7-404a-bcad-62b3ff020761&width=768&dpr=3&quality=100&sign=300be548&sv=2) Available languages: EN. [PreviousUser Guidechevron-left](https://doc.ozforensics.com/oz-knowledge/guides/user-guide) [NextRequesting Analyseschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-order) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Using OzCapsula Data Container in Web SDK | Oz Knowledge In this mode, the SDK captures media from the user, packs all biometric and technical data into a **container** (`application/octet-stream`), and then either: * uploads it directly to Oz API (architecture: **normal** for stateful API or **lite** for Instant), or * returns it to your backend for forwarding (**capture** architecture). [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#configuration-overview) **Configuration Overview** -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- When enabling container mode, the key parameters are: **Parameter** **Value** **Description** use\_wasm\_container true Enables data container generation architecture `normal` / `lite`/ `capture` Defines who sends the data to Oz API (Web SDK or your backend) api\_use\_session\_token `api` / `client` Defines who retrieves the session token (Web SDK or your backend) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#session-token) Session Token ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#api_use_session_token-client) `api_use_session_token: "client"` In this mode, your **backend** obtains the session token before opening the Web SDK. **Steps:** 1. Request a session token from Oz API: Copy curl --location '{{host}}/api/authorize/session_token' \ -H 'X-Forensic-Access-Token: ' 1. The response will contain a short-term `session_token`: 1. Pass this token to the Web SDK Plugin: circle-info The session token is valid only for a few minutes and must be requested before each capture session. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#api_use_session_token-api) `api_use_session_token: "api"` In this mode, the SDK automatically retrieves the session token directly from Oz API. You don’t need to request or provide it manually. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#flow-for-different-architectures) Flow for Different Architectures ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ The flow is different depending on your architecture type. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#architecture-normal) `architecture: "normal"` In this mode, the Web SDK **automatically uploads** the generated container to Oz API. You do **not** need to handle any upload manually. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#architecture-lite) `architecture: "lite"` In this mode, the Web SDK **automatically uploads** the generated container to Oz API. You do **not** need to handle any upload manually. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#architecture-capture) `architecture: "capture"` In this mode, **Web SDK only captures and packs data**, but **does not send it** to the Oz API. Your backend is responsible for receiving the container and forwarding it to Oz API. **Flow:** 1. Web SDK performs video capture and calls the `on_capture_complete(result, container)` callback, where the second argument (`container`) is a **Blob** object (`application/octet-stream`). 2. You send this blob to your backend. 3. Your backend sends it to Oz API using an HTTPS POST request. **Example request:** The response will be similar to the one from the non-container flow. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#possible-errors) Possible Errors -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- **Error** **Description** error\_wasm\_internal\_failure\_1 The device or browser used doesn’t support WASM error\_wasm\_internal\_failure\_2 The device doesn’t have enough memory to proceed * error\_wasm\_internal\_failure\_3 * error\_wasm\_internal\_failure\_4 * error\_wasm\_internal\_failure\_5 SDK couldn’t generate the container. Try again error\_wasm\_internal\_failure\_1000 Any other error not from the list above [PreviousNo-Server Licensingchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/no-server-licensing) [NextChangelogchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog) Last updated 1 month ago Was this helpful? * [Configuration Overview](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#configuration-overview) * [Session Token](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#session-token) * [Flow for Different Architectures](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#flow-for-different-architectures) * [Possible Errors](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk#possible-errors) Was this helpful? sun-brightdesktopmoon Copy { "session_token": "eyJh..." } Copy OzLiveness.open({ session_token, // other open options }); Copy curl -X POST \ '{{host}}/api/folders' \ -H 'Content-Type: application/octet-stream' \ -H 'X-Forensic-Access-Token: ' \ --data-binary '@/path/to/container.dat' sun-brightdesktopmoon --- # Android: Certificate Validation Error | Oz Knowledge If you get the "Trust anchor for certification path not found" exception thrown by Oz Android SDK, your certificate might seem invalid to it. Please contact us and update your SDK version according to our recommendations. **Certificate** **Minimal Android SDK version that supports this certificate** Let's Encrypt ISRG Root X1 7.1.2 [PreviousSudo without Passwordchevron-left](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/sudo-no-password) [NextPrevious Documentationchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs) Last updated 2 years ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz Liveness Web SDK | Oz Knowledge Oz Liveness Web SDK is a module for processing data on clients' devices. With Oz Liveness Web SDK, you can take photos and videos of people via their web browsers and then analyze these media. Most browsers and devices are supported. Available languages: EN, ES, PT-BR, KK. Please find a sample for Oz Liveness Web SDK [herearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web/-/blob/master/OzLivenessWebSDKSample.html) . To make it work, replace `` with the Web Adapter URL you've received from us. For Angular and React, replace `https://web-sdk.sandbox.ohio.ozforensics.com` in index.html. * [Angular samplearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-angular) * [React samplearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-react/-/tree/main) * [Vuearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-vue) sample * [Sveltearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-svelte) sample Web SDK requires HTTPS (with SSL encryption) to work; however, at localhost and 127.0.01, you can check the resources' availability via HTTP. Oz Liveness Web SDK consists of two components: 1. Client side – a JavaScript file that is being loaded within the frontend part of your application. It is called [Oz Liveness Web Plugin](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin) . 2. Server side – a separate server module with [OZ API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api) , the backend part. The module is called [Oz](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter) Liveness [Web Adapter](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter) . The integration guides can be found here: [How to Integrate Server-Based Liveness into Your Web Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) [How to Add Photo ID Capture and Face Matching to Your Web or Mobile Applicationchevron-right](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-photo-id-capture-and-face-matching-to-your-web-or-mobile-application) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FwndsGjnUVK0L5PIrVARS%252Fcomponents-public-websdk.svg%3Falt%3Dmedia%26token%3D23b1d99d-59a5-41b2-9332-45e114f5e2f0&width=768&dpr=3&quality=100&sign=a9db7741&sv=2) Oz Web SDK can be provided via SaaS, when the server part works on our servers and is maintained by our engineers, and you just use it, or on-premise, when Oz Web Adapter is installed on your servers. [Contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#95fcfbf3fad5faeff3fae7f0fbe6fcf6e6bbf6faf8) for more details and choose the model that is convenient for you. Oz Web SDK requires a [license](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing) to work. To issue a license, we need the domain name of the website where you are going to use our SDK. This is a guide on how to start with Oz Web SDK: 1. On-Premise * Install our Web SDK. Our engineers will help you to install the components needed using the [standalone installer](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone) or manually. The license will be installed as well; to update it, please refer to [this article](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing#licensing) . * Configure the [adapter](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter) . 1. SaaS * This part is fully covered by the Oz Forensics engineers. You get a link for Oz Web Plugin (see step 2). 1. [Integrate](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/adding-the-plugin-to-your-web-page) the plugin into your page. 2. If you want to customize the look-and-feel of Oz Web SDK, please refer to [this section](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/look-and-feel-customization/customization-options-for-older-versions-before-1.0.1) . [PreviousUsing OzCapsula Data Container in Native SDKchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk) [NextWeb Plugin (Web SDK Frontend part)chevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin) Last updated 8 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Settings | Oz Knowledge The **Settings** tab contains settings for connecting to the Web API. Click the **Edit** or **Add Server** buttons to fix them or add a new server, respectively. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fae9cf7bxI7JaWnQtyQDQ%252FFrame%2520136%2520%282%29.png%3Falt%3Dmedia%26token%3D3f058592-9ed2-467c-8e2b-e1e598c01c86&width=768&dpr=3&quality=100&sign=9ae0f87a&sv=2) * fill in all the fields to add a new server: * **Server name** – the name of the API server you are using * **API URL** – the address of the API server you are using * **Access-token** – the authorization token of a user with OZ API administrator rights * **Login** and **Password** – their login and password * once finished, click the **Submit** button. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FCyARDZ5yTwz1XF9b6deF%252Fset2.jpg%3Falt%3Dmedia%26token%3D54f99344-63dd-41a6-adb2-6bd40d24678e&width=768&dpr=3&quality=100&sign=ba2db2f9&sv=2) * **About program** shows the current version of the interface. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FGK54r11ntQjm4hF7QZFD%252FScreenshot_53.png%3Falt%3Dmedia%26token%3Dd4486fa2-470f-4978-b22e-de964dde62e5&width=768&dpr=3&quality=100&sign=db689dee&sv=2) [PreviousStatisticschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics) [NextChangelogchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog) Last updated 3 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Web UI | Oz Knowledge #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/web-ui#analyses-duration) Analyses Duration The chart shows the duration of analyses by their types, depending on the number of analyses performed. Together with the total number, the number of analyses execution time is displayed: minimum, arithmetic mean and maximum analysis execution time. **Chart options:** * All analyses * Any analysis * Black list * Biometry * Liveness * Documents Displays on the **Performance** tab. Available display options are **Line** and **Donut** charts. [PreviousOz Demo Kitchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit) [NextAnalysis reportchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/web-ui/analysis-report) Last updated 28 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Mobile SDK | Oz Knowledge This section contains "old" documentation on Android and iOS SDK. [PreviousPrevious Documentationchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs) [NextAndroidchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android) Last updated 2 years ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Previous Documentation | Oz Knowledge Since February 2021, we have launched the new documentation, which includes revised articles from the previous documentation and new instructions. New articles are being constantly updated so that our customers and site visitors always receive the actual documentation. If you started implementing our products before February 2021 and haven't changed anything since then, the previous documentation is available for you at this [**link**arrow-up-right](https://ozforensics.com/oz_api/intro) . For the documentation on older product versions that are still newer than February 2021, please refer to subpages of this page. [PreviousAndroid: Certificate Validation Errorchevron-left](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/android-certificate-validation-error) [NextMobile SDKchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Android | Oz Knowledge [Interactions with the Oz API Serverchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/interactions-with-the-oz-api-server) [Uploading and Analyzing Mediachevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/uploading-and-analyzing-media) [PreviousMobile SDKchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk) [NextInteractions with the Oz API Serverchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/interactions-with-the-oz-api-server) Last updated 3 years ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Media File Size Overview | Oz Knowledge The tables below contain the median sizes of files taken by our SDKs. In 95% of cases, the mean sizes are comparable with median, but, in 5%, files might be significantly larger than expected. The file size of the best shot, as the best shot is also a single frame, is equal to the file size of the **One shot** gesture. For each gesture, you can see whether it counts as [passive or active Liveness](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview#native-sdks) Native SDKs circle-info We recommend avoiding the **One Shot** gesture whenever possible, as it tends to produce less accurate results. Gesture Android iOS Liveness Simple selfie 2.01 MB 0.92 MB Passive One shot 1.43 MB 0.26 MB Passive Scan 2.69 MB 4.52 MB Passive Smile 2.21 MB 2.38 MB Active Blink 1.24 MB 1.96 MB Active Head turned left 2.43 MB 2.79 MB Active Head turned right 2.53 MB 1.67 MB Active Head tilted downwards 1.67 MB 1.93 MB Active Head lifted up 2.41 MB 1.95 MB Active ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview#web-sdk) Web SDK circle-info We recommend avoiding the **One Shot** gesture whenever possible, as it tends to produce less accurate results. Gesture Web SDK on smartphones Web SDK on desktop Liveness Simple selfie 2 MB 1.3 MB Passive One shot 1.4 MB 800 KB Passive Scan 4.6 MB 2.6 MB Passive Smile 4.5 MB 3.9 MB Active Blink 4.6 MB 4 MB Active Head turned left 4.3 MB 4.2 MB Active Head turned right 4.5 MB 4.2 MB Active Head tilted downwards 4.5 MB 4.4 MB Active Head lifted up 4.6 MB 4 MB Active [PreviousOz SDK Media Quality Checkschevron-left](https://doc.ozforensics.com/oz-knowledge/other/oz-sdk-media-quality-checks) [NextCompatibilitychevron-right](https://doc.ozforensics.com/oz-knowledge/other/compatibility) Last updated 3 months ago Was this helpful? * [Native SDKs](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview#native-sdks) * [Web SDK](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview#web-sdk) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Requesting Analyses | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-order#how-to-create-an-order-for-analysis) How to Create an Order for Analysis ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1. Click the **Create order** button on the **Orders** tab. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FAHrz1FH3Ekn0ttHMolFA%252Fcreate%2520order.png%3Falt%3Dmedia%26token%3D6001ac9c-856d-4dcc-ad2b-a932bc156fad&width=768&dpr=3&quality=100&sign=26aa0a5d&sv=2) 2\. Select media files to upload to the system or drag and drop them to the selected area. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-MTkMLSW8esUjMgO7N5o%252F-MTkMreGES4KrDfJiGK2%252FLoadFiles-En.png%3Falt%3Dmedia%26token%3D40cbdbf0-5dd8-4407-bc06-2cc9d95a2917&width=768&dpr=3&quality=100&sign=7738f141&sv=2) 3\. After the download is complete, the analysis types become available for selection. By default, there are all possible checkboxes. * **Document check** – recognition and verification of the document fields. * [**Image Biometry check**](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/biometry) – comparing multiple photos and assessing the level of similarity. * [**Collection check**](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/collection) – compare the uploaded photo with the scammers' photos from the collection database. * [**Liveness**](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness) – an algorithm for determining liveliness is designed to check the presence of a living person by a short video fragment. The checkbox is available for selection only when uploading a video. Uncheck the (or not installed components) analysis types you don't need. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FDqMWAX7L2wylCoEsFU0E%252FScreenshot_123.jpg%3Falt%3Dmedia%26token%3Db06484fd-4411-4d90-8efd-2eadb726c933&width=768&dpr=3&quality=100&sign=86beb38d&sv=2) 4\. Next, select tags – the type of content for each uploaded file and at the end click the **Submit analysis** button. * Options for choosing the **Document** type (you can load several pages of one document at once): * Document with photo * Document without photo * if there is a face in the image, not a document, select the **Selfie** content type. * For videos, only **Selfie** is available along with qualifying tags: * orientation: **Portrait** or **Landscape** * type of action (what action was performed by the person in the video): scan, turn left, turn right, turn down, turn up, smile, close eyes. The video with a certain type of action is recorded via the [Oz Mobile SDK](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk) and [Web SDK](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk) . For regular videos, use the **Scan** tag. circle-info Please note: if the tags are chosen incorrectly, the analysis results might be flawed. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F0dACylWQ2zTbKiNeIQld%252Fchrome_4CTtOGE1QC.png%3Falt%3Dmedia%26token%3D3034c9db-866a-421f-8075-944deff8c22b&width=768&dpr=3&quality=100&sign=7789bce1&sv=2) 5\. Upon the analysis completion, you'll see the results for the previously selected analysis types: * analysis succeeded – everything went fine; * analysis failed – faces don't match, Liveness check failed, an error emerged during the processing, etc.; * operator required – this means the system requests for the additional check made by your employee. To get the detailed result for a specific type of analysis, click on the mark near the analysis' name. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fk0uuYPFvAOaSbX2cJDhV%252Fanalysis%2520results.png%3Falt%3Dmedia%26token%3Dfc975ee0-ceeb-4f47-8a1d-3db7a6fcc919&width=768&dpr=3&quality=100&sign=d602aa9c&sv=2) `OPERATOR` and `CLIENT OPERATOR` can change the analysis verdict. These roles have access to an additional button: **Make decision**. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FTgTwPkE1SwdgdfFtrRla%252FScreenshot_177en.jpg%3Falt%3Dmedia%26token%3D2c2d63eb-f14c-4d2c-a57d-5845938aedd1&width=768&dpr=3&quality=100&sign=dc56d28c&sv=2) To change the verdict, the user should select the decision from the drop-down menu and click **Apply**. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FcifYe8XgKADtFxotmFcj%252FScreenshot_177en2.jpg%3Falt%3Dmedia%26token%3D8d6bfdc2-81a4-4bce-9eea-0837e3543a0c&width=768&dpr=3&quality=100&sign=57ebeb62&sv=2) Once analyses are finished for a folder, this folder gets status according to the analyses' results: * `SUCCESS`– everything went fine, all analyses completed successfully; * `OPERATOR_REQUIRED` – there are no analyses with the `DECLINED` status, but one or more analyses have been completed with the `OPERATOR_REQUIRED` status; * `DECLINED` – one or more analyses have been completed with the `DECLINED` status. The other two statuses that you might encounter are FAILED and INITIAL. FAILED means that one or more analyses are finished with an error. INITIAL stands for folders with no analyses applied. A report on the study will be available in the PDF format by clicking the **PDF list** button (1) from the list of orders. For this option to become available, you should have a pre-configured report template for your company. Additionally, you can create a report from the order screen by clicking the **Show Report** button at the bottom of the page below an image. Any order can be deleted either by clicking the **Trash bin** button from the list of orders (2) or by clicking the **Delete** button from the order form. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FxcqUyo5HLCjYhtTziKUJ%252FReportDel-En.png%3Falt%3Dmedia%26token%3De15db148-7ea2-4a4f-82cb-1ffdb0578d8f&width=768&dpr=3&quality=100&sign=34fd1d58&sv=2) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-order#filters) Filters --------------------------------------------------------------------------------------------------------------- Analysis orders can be filtered by several parameters. The scope of visibility is limited by the access rights of your user's role. * In the **Orders** tab, click the **Filter** button ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FPMnsZkoZtkS2XIM5Gs8p%252Ffilter%2520en.png%3Falt%3Dmedia%26token%3D4bbc5d5d-69dd-4755-a004-8c47fec07725&width=768&dpr=3&quality=100&sign=8f42bae2&sv=2) * you can use one or more fields for filtering: * **Order number** – enter the full alphanumeric order number or type the first few characters. * **Date/time** – the range of dates of orders' creation. * **Company** – the company that owns the orders. * **Manager** – the user who created the orders. * **Consolidated folder status** – the overall analyses' result for the folder. * **Analysis type** – the type of the analysis applied. * **Analysis result** – choose the result to display all orders where one or more of the analyses have been completed with this result. * **Meta** – you can filter orders by specific meta tags by adding their name and value using the **Add** button. A meta tag is any information that a programmer can transmit when submitting an order via API. Enter the name and range of values into the field manually. * After filling in the fields, click the **Search** button. * To reset the current filter, hit the **Reset** button. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fs0v8V3geBXhs7PrfQZaE%252Ffilter2.png%3Falt%3Dmedia%26token%3D4d9e8eab-bc7a-41c4-9d3d-2394736cccdc&width=768&dpr=3&quality=100&sign=341e24e&sv=2) [PreviousOz Web UIchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui) [NextUsers and Companieschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users) Last updated 28 days ago Was this helpful? * [How to Create an Order for Analysis](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-order#how-to-create-an-order-for-analysis) * [Filters](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-order#filters) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Configuration Using Environment Variables | Oz Knowledge Some configuration file parameters can be changed without direct editing of the `/core/app_config.json` file. You can do it using the environment variables. * `WA_ARCHITECTURE` – redefines the `architecture` parameter * `WA_API_URL` – redefines the `api_url` parameter Here's an example of using environment variables for the dockered Web SDK in the Lite mode: Copy docker run -d -p 80:80 \ -e WA_ARCHITECTURE=lite \ -e WA_API_URL='http://127.0.0.1:8000/v1/face/liveness/detect' \ ozforensics/oz-webliveness:{tag} [PreviousConfiguration File Settingschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-file-settings) [NextServer Configuration via Environment Variableschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/server-configuration-via-environment-variables) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Web Adapter (Web SDK Backend) Configuration | Oz Knowledge circle-exclamation If you use Oz Web SDK via SaaS, please contacts our engineers. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FF5FRVAlygIumOeT53ZMo%252Fcomponents-public-webadapter.svg%3Falt%3Dmedia%26token%3Dd8215ae3-7dce-4cfe-8241-1045cca83772&width=768&dpr=3&quality=100&sign=d8110033&sv=2) Oz Liveness Web Adapter is the backend part of Web SDK and is set up via changes in the configuration file stored at the Oz Liveness Web Adapter server: `/core/app_config.json` chevron-rightPlease note: the Adapter guide covers the on-premise model of usage only.[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter#please-note-the-adapter-guide-covers-the-on-premise-model-of-usage-only) Before you start, it is highly advisable that you get an access token. 1. Create a service account. Its access token is set to expire in 5 years. 2. Install Postman and [download](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections) the Oz API collection needed. 3. Authorize: send a`POST request {{host}}/api/authorize/auth`, where `{{host}}` stands for the API server address. In the request body, send the service account credentials: login and password. For more information, please refer to [this article](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/authentication) . 4. The response to your request will contain the `access_token` parameter. Copy its value to the `api_token` parameter of the `/core/app_config.json` file. Set `api_use_token` to `config`. You're done. Please find a sample for Oz Liveness Web SDK [herearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web/-/blob/master/OzLivenessWebSDKSample.html) . To make it work, replace `` with the Web Adapter URL you've received from us. For Angular and React, replace `https://web-sdk.sandbox.ozforensics.com` in index.html. * [Angular samplearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-angular) * [React samplearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-react/-/tree/main/public) [Configuration File Settingschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-file-settings) [Configuration Using Environment Variableschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-using-environment-variables) [Server Configuration via Environment Variableschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/server-configuration-via-environment-variables) [PreviousLicense Serverchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server) [NextInstallation and Licensingchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing) Last updated 1 month ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # License Server | Oz Knowledge Oz Forensics provides flexible licensing rules for all products. To support licensing for servers without an Internet connection, you need to install an offline license server. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fkhnl141gkSdQTUgrjcTn%252Fcomponents-public-licenseserver.svg%3Falt%3Dmedia%26token%3Df172f46d-26f2-4b80-823d-44004849131a&width=768&dpr=3&quality=100&sign=4d54fc2a&sv=2) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#how-to-install-an-offline-licensing-server) How to Install an Offline Licensing Server ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- You can install the software on any Linux-based non-virtual server. [Contact usarrow-up-right](mailto:Info@ozforensics.com) to get the files needed and follow the steps below. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#id-1.-unpack-the-software) 1\. Unpack the Software ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#id-2.-install-the-license-service) 2\. Install the License Service The installation is complete. For the next steps, use the Web interface on port `8090`. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#id-3.-activate-the-license) 3\. Activate the License Open the default page in your Web browser `http://server:8090` and authorize with your login and password. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-Mipzs_5GiYbvwh3BX0h%252F-Miq8P8E_2bD2pxVvfv4%252Fimage.png%3Falt%3Dmedia%26token%3Da7a4ab01-6414-4da0-b936-cfb85aebd07d&width=768&dpr=3&quality=100&sign=ce1ba778&sv=2) авторизация Go to the`Settings` section. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-Mipzs_5GiYbvwh3BX0h%252F-Miq9_HOj-A_tl4Mw8va%252Fimage.png%3Falt%3Dmedia%26token%3D29448090-f532-4522-bd3e-b68b59365950&width=768&dpr=3&quality=100&sign=66ba2d2a&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-Mipzs_5GiYbvwh3BX0h%252F-MiqBkF6EIk2J0DBaYEV%252Fimage.png%3Falt%3Dmedia%26token%3Db7150632-b7de-4586-8d25-e134925482cb&width=768&dpr=3&quality=100&sign=50350d93&sv=2) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#online-activation) Online activation The easiest way to activate the license server is via the Internet. Enter the license key and click `ACTIVATE`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#offline-activation) Offline activation If your server isn't connected to the Internet, use the offline activation option. Click the `SWITCH TO OFFLINE ACTIVATION` link. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-Mipzs_5GiYbvwh3BX0h%252F-MiqByxyTpTk8MxTbHXs%252Fimage.png%3Falt%3Dmedia%26token%3Dbceb71e4-6dd5-40da-aa6d-e79c86c58a6c&width=768&dpr=3&quality=100&sign=e2304768&sv=2) Enter the license key and hit `NEXT`. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-Mipzs_5GiYbvwh3BX0h%252F-MiqB8YCLY9wVZ5Y9UaW%252Fimage.png%3Falt%3Dmedia%26token%3Dd805573d-6584-4fd2-a796-435a1ad2bc29&width=768&dpr=3&quality=100&sign=36dd6ca2&sv=2) Click`DOWNLOAD REQUEST FILE`. You'll get the `offline_activation_request.txt` file. Send it to [usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#b4fddad2dbf4dbced2dbc6d1dac7ddd7c79ad7dbd9) to receive the activation code. Enter the activation code in the offline activation response window and hit `ACTIVATE`. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#activate-modules) Activate modules ------------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#oz-api-lite) Oz Api Lite Add an extra command line parameter with the `LICENSE_KEY` environment variable with license server host address and port. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#oz-bio) Oz Bio Create the `license.key` file with the content of license host and IP and bind this file to your container: [PreviousMonitoringchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring) [NextWeb Adapter (Web SDK Backend) Configurationchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter) Last updated 3 years ago Was this helpful? * [How to Install an Offline Licensing Server](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#how-to-install-an-offline-licensing-server) * [1\. Unpack the Software](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#id-1.-unpack-the-software) * [2\. Install the License Service](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#id-2.-install-the-license-service) * [3\. Activate the License](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#id-3.-activate-the-license) * [Activate modules](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#activate-modules) * [Oz Api Lite](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#oz-api-lite) * [Oz Bio](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server#oz-bio) Was this helpful? sun-brightdesktopmoon Copy mkdir /opt/oz cd /opt/oz tar xzf oz-lic.tar.gz Copy ./LexFloatServer -p product.dat -c config.yml -i --service-name ozlic Copy docker run -e LICENSE_KEY="http://ip-address:8090" ... Copy echo "http://ip-address:8090" > license.key docker run -v `pwd`/license.key:/license.key ... sun-brightdesktopmoon --- # Security Recommendations | Oz Knowledge In 8.8.0, we’ve implemented SSL pinning to protect our clients from MITM attacks. We strongly recommend adding a built-in certificate whitelist to your application to prevent fraud with third-party certificates set as trusted. chevron-rightWhat is a MITM attack[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/security-recommendations#what-is-a-mitm-attack) MITM (man in the middle) attack is a type of attacks when a cyber fraudster breaks into the communication between application and backend, setting up a proxy to intercept and alter the traffic (e.g., substitute the video being sent). Typically, these attacks involve the fraudster setting their certificate as trusted on the user's device beforehand. You can add a list of certificates your application should trust at the moment of connection to Oz API via the optional sslPins field of OzConnection class. As an input, this field takes a list of public certificate key hashes with their expiration dates as shown below: #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/security-recommendations#android) Android Copy Connection.fromServiceToken( "your API server host", "your token", listOf( SslPin( "your hash", // SHA256 key hash in base64 // key expiration date as a UNIX timestamp, UTC time ) ), ) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/security-recommendations#ios) iOS Copy let pins = [SSLPin.pin(\ publicKeyHash: "your hash", // SHA256 key hash in base64\ expirationDate: date)] // key expiration date as a UNIX timestamp, UTC time OZSDK.setApiConnection(.fromServiceToken( host: "your API server host", token: "your token", sslPins: pins)) { (token, error) in // } ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/security-recommendations#getting-keys-and-dates-the-simplest-way) **Getting keys and dates: the simplest way** 1. Go to the [https://globalsign.ssllabs.com/arrow-up-right](https://globalsign.ssllabs.com/) website. 2. Enter your domain address. Once the address is processed, you’ll see a list of your servers. 3. Click the server address needed to load a list of certificates. Certificate key is in the **Pin SHA256** line of the **Subject** field. Expiration date is shown in the **Valid until** field. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FcD2iZNVYNvMXplsj9IPr%252Fcerts.png%3Falt%3Dmedia%26token%3D580d4b00-3f12-46e8-9c6d-edafd3800c60&width=768&dpr=3&quality=100&sign=2f869cb6&sv=2) Certificate number one is your host certificate. Your root certificate is in the very bottom of the list. Others are intermediate. For SSL pinning, any of them fits. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/security-recommendations#choosing-a-certificate) **Choosing a certificate** The higher the certificate is on the list, the better the level of protection against theft. Thus, if you use the host certificate to pin in your application, you get the highest security level. However, the lifetime of these certificates is significantly shorter than that of intermediate or root certificates. To keep your application secure, you will need to change your pins as soon as they expire; otherwise, functionality might become unavailable. As a reasonable balance between safety and the resources needed to maintain it, we recommend using intermediate or even root certificate keys for pinning. While the security level is slightly lower, you won’t need to change these pins as often because these certificates have a much longer lifetime. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FcqrU5N0mLSOXHwTZpzNc%252Fcerts2.png%3Falt%3Dmedia%26token%3D8d8ba45c-74d1-4a20-9f0c-7296b71b3788&width=768&dpr=3&quality=100&sign=93a159fe&sv=2) **Certificate owner** **Trust level** **Resources requirements (depend on the certificate’s lifetime)** Host Highest High, but requires the most resources to maintain: keys’ list should be updated at the same time as certificate Intermediate certificate authority Above average; the application considers all certificates that have been issued by this authority as trusted Average Root certificate authority Average; the application considers all certificates that have been issued by this authority as trusted, including the intermediate authority-issued certificates Low #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/security-recommendations#obtaining-hash-and-date) Obtaining Hash and Date circle-info The commands listed in this section have been tested on Ubuntu, but they should work on other Linux-based OS as well. To obtain the hash, run the following command with your server domain and port: In the response, you’ll receive hash for your SslPin. To get the certificate’s expiration date, run the next command – again with your server domain and port: The date you require will be in the `notAfter` parameter. We’ll provide you with the hash and date of our API server certificate. [PreviousChangelogchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/flutter/changelog) [NextUsing OzCapsula Data Container in Native SDKchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk) Last updated 7 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon Copy echo | openssl s_client -connect {SERVER_DOMAIN_NAME}:{PORT} 2> /dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary| openssl enc -base64 Copy openssl s_client -servername {SERVER_DOMAIN_NAME} -connect {SERVER_DOMAIN_NAME}:{PORT} | openssl x509 -noout -dates echo -n Q | openssl s_client -servername {SERVER_DOMAIN_NAME} -connect {SERVER_DOMAIN_NAME}:{PORT} | openssl x509 -noout -dates sun-brightdesktopmoon --- # Sudo without Password | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/sudo-no-password#apply-the-setting) Apply the Setting ----------------------------------------------------------------------------------------------------------------------------------- Execute the following command: Copy echo "your_user_name ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/oz-user Then, check sudo. If password is still requested, execute an additional command: Copy sudo sed -i 's/^Defaults requiretty/#Defaults requiretty/' /etc/sudoers [hashtag](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/sudo-no-password#rollback-the-setting) Rollback the Setting ----------------------------------------------------------------------------------------------------------------------------------------- Copy sudo rm /etc/sudoers.d/oz-user # optional: sudo sed -i 's/^#Defaults requiretty/Defaults requiretty/' /etc/sudoers [PreviousOz Liveness Gestures: Table of Correspondencechevron-left](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/oz-liveness-gestures-table-of-correspondence) [NextAndroid: Certificate Validation Errorchevron-right](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/android-certificate-validation-error) Last updated 4 years ago Was this helpful? * [Apply the Setting](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/sudo-no-password#apply-the-setting) * [Rollback the Setting](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/sudo-no-password#rollback-the-setting) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Publishing API Methods in the Internet: Security Recommendations | Oz Knowledge By default, all API methods are published without restrictions, that may possess security threats. For accessing API methods from Internet, we recommend enabling limitations on WAF, border L7 balancer, etc. circle-info If you use Web SDK only, you don't need to publish API methods on the Internet. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/publishing-api-methods-in-the-internet-security-recommendations#api) API ----------------------------------------------------------------------------------------------------------------------------------------------------------- The information below is relevant for Oz API 5.2. For Oz API with Mobile SDK, make sure these methods are accessible from the Internet: Copy # Mobile SDK for Android: @POST("api/authorize/auth") @POST("api/authorize/refresh") @POST("api/folders") @DELETE("api/folders/{folder_id}") @POST("api/folders/{folder_id}/analyses") @GET("api/folders/{folder_id}/analyses") @GET("api/folders/{folder_id}/media/") @GET("api/folders/{folder_id}/") @GET("api/ab-testings-configs") @GET("api/analyses/{analyse_id}") @POST("api/folders/{folder_id}/media") @POST("api/event_sessions") @POST("api/instant/folders") # Mobile SDK for IOS: @GET("api/ab-testings-configs") @POST("api/authorize/auth") @POST("api/authorize/refresh") @POST("api/event_sessions") @POST("api/folders/?") @POST("api/folders/(folderId)/media/") @GET("api/analyses/") @POST("api/instant/folders") @GET("api/collections") @POST("api/folders/(folderID)/analyses") @GET("api/folders/(folderID)?with_analyses=true") You may need to extend this list depending on how Oz API has been integrated into your infrastructure. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/publishing-api-methods-in-the-internet-security-recommendations#web-sdk) Web SDK ------------------------------------------------------------------------------------------------------------------------------------------------------------------- For Web SDK, make sure these methods are accessible from the Internet. `Your Web SDK URL` is the Web Adapter URL you have received from us. [PreviousPerformance and Scalability Guidechevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide) [NextMonitoringchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring) Last updated 1 year ago Was this helpful? * [API](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/publishing-api-methods-in-the-internet-security-recommendations#api) * [Web SDK](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/publishing-api-methods-in-the-internet-security-recommendations#web-sdk) Was this helpful? sun-brightdesktopmoon Copy /plugin_liveness.php /config.php /init.php /tm.php /result.php /request.php /plugin/liveness-*.css /plugin/ozliveness_main.js /plugin/faceworker.js /plugin/vendor/*.js /plugin/vendor/*.wasm /plugin/vendor/models/**/* sun-brightdesktopmoon --- # Oz Liveness Gestures: Table of Correspondence | Oz Knowledge Currently, the names of gestures in components of Oz Liveness might differ. We are working on it and will fix this in future releases. For now, please refer to the table of correspondence below. Gesture Tag Web SDK iOs SDK Android SDK API Smile video\_selfie\_smile video\_selfie\_smile smile Smile smile Blink video\_selfie\_eyes video\_selfie\_eyes eyes EyeBlink eyes Scan video\_selfie\_scan video\_selfie\_scan scanning Scan scan A selfie with face alignment check video\_selfie\_blank video\_selfie\_blank selfie Blank blank The best shot from the video taken video\_selfie\_oneshot video\_selfie\_best one\_shot OneShot oneshot Head turned left video\_selfie\_left video\_selfie\_left left HeadLeft left Head turned right video\_selfie\_right video\_selfie\_right right HeadRight right Head tilted downwards video\_selfie\_down video\_selfie\_down down HeadDown down Head lifted up video\_selfie\_high video\_selfie\_high up HeadUp up [PreviousTips and Trickschevron-left](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks) [NextSudo without Passwordchevron-right](https://doc.ozforensics.com/oz-knowledge/other/tips-and-tricks/sudo-no-password) Last updated 2 years ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Uploading and Analyzing Media | Oz Knowledge ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/uploading-and-analyzing-media#server-based-analyzes) Server-Based Analyzes Data to be uploaded and analyzed is stored in object sdkMediaResult, obtained after capturing and recording video. Upload it to the server and initiate required analyses via [Oz API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) . A simple scenario of interaction with Oz API can be implemented with the`uploadMediaAndAnalyze` method as described below. Kotlin Java Copy val statusListener = object: StatusListener> { override fun onStatusChanged(status: String?) { /*your code for showing status message*/ } override fun onSuccess(result:List ) { /*your code to handle analysis result*/ } override fun onError(error: OzException) { /*your code to handle analysis error*/ } } val analysisCancelable = OzLivenessSDK.uploadMediaAndAnalyze( mediaList, listOf(OzAnalysis.QUALITY, OzAnalysis.BIOMETRY), statusListener ) Copy StatusListener> statusListener = new StatusListener>() { @Override public void onStatusChanged(@Nullable String s) { /*your code for showing status message*/ } @Override public void onSuccess(List result) { /* your code to handle analysis result */ } @Override public void onError(@NonNull OzException e) { /* your code to handle analysis error */ } }; Cancelable analysisCancelable = OzLivenessSDK.INSTANCE.uploadMediaAndAnalyze( mediaList, Arrays.asList(OzAnalysis.QUALITY, OzAnalysis.BIOMETRY), statusListener ); #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/uploading-and-analyzing-media#on-device-analyzes) On-Device Analyzes To run the on-device analyses instead of server-based, use the following methods: Kotlin Java Copy OzLivenessSDK.runOnDeviceLivenessAnalysis(mediaList) OzLivenessSDK.runOnDeviceBiometryAnalysis(mediaList) Copy OzLivenessSDK.INSTANCE.runOnDeviceLivenessAnalysis(mediaList); OzLivenessSDK.INSTANCE.runOnDeviceBiometryAnalysis(mediaList); [PreviousInteractions with the Oz API Serverchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/interactions-with-the-oz-api-server) [NextiOSchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/ios) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Changelog | Oz Knowledge #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth) 1.9.2-15 – Dec. 30, 2025 * Implemented a new proprietary data format: OzCapsula Data Container. * You can now customize face oval using new [`.ozliveness_face_stroke`](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/look-and-feel-customization#ozliveness_face_stroke) CSS class (stroke color, glow effects, etc.). All standard CSS properties are supported. * We now support the `kk` language code as alias for `kz` (Kazakh). `OzLiveness.set_lang('kk')` and `OzLiveness.set_lang('kz')` work equally. * The `OzLiveness.hide()` and `show()` methods now support global UI visibility state. You don’t need to call them each time, the state is saved between sessions. * Added new callbacks: * `on_media_stream_start` is called when `getUserMedia` is completed successfully, * `on_media_stream_stop` is called once video is captured. * The `ready()` promise is now exposed as the plugin initialization event. Added new methods: * `OzLiveness.ready(): Promise` to return the Promise that is resolved after all plugin resources are loaded, * `OzLiveness.isReady(): Boolean` to check the initialization state. * Fixed the bug with empty loader been displayed on screen between processing and uploading. * If you enter the wrong language code, SDK now shows the proper error. * The non-English locales are now being applied properly on the first `open()` call. * Enhanced security. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-1) 1.8.1 – Oct. 09, 2025 * Web SDK no longer returns an error when you call `OzLiveness.hide()` immediately after launching the plugin. * Improved performance. * Enhanced security. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-2) 1.8.0 – Sept. 26, 2025 * You can now launch Web Plugin in the windowed mode. Define `parent_container` in `OpenOptions`: `parent_container: string | HTMLElement`. * Loader transitions are now customizable. Please refer to the [customization](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/look-and-feel-customization#loadertransition) settings. * Improved handling of head movement gestures (up / down). * Resolved an issue with excessive error messages in console. * Updated telemetry. * Enhanced security. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-3) 1.7.15 – Aug. 12, 2025 * You can now replace the default loader with your custom one. Please refer to the [customization](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/look-and-feel-customization#loaderslot) settings. * The behavior of SDK, when getting camera access takes too long, is now manageable. Please refer to `get_user_media_promise_timeout_*` parameters listed [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/launching-the-plugin) . * Security and telemetry updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-4) 1.7.14-89-1 – July 09, 2025 * **Breaking changes**: we no longer transmit scores in callbacks. Replace `confidence_spoofing` with 0 for SUCCESS and with 1 for other statuses. * Fixed the bug with Web SDK being unable to read the `image_data_tensor` properties. * Resolved the issue when OzLiveness was sometimes called later than expected. * Security update. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-5) 1.7.14 – June 13, 2025 * Added support for API 6.0. * CORS headers in [server configuration](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/server-configuration-via-environment-variables) should now be specified without quotation marks. * Added a new parameter to manage authorization. `auth` defines whether and what authorization is used: * `true` (the default value) – authorization is required and is based on the generated key; * `user:pass` – authorization is required and is based on the user login and password; * `false` – no authorization needed. * You can now hide the **Switch Camera** button. Use [`style.switchCameraButtonCustomization`](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/look-and-feel-customization#switchcamerabuttoncustomization) . * Fixed the bug with colors being applied incorrectly during 3D mask customization. * Resolved the issue with incorrect mirroring when the `use_for_liveness` parameter is not set. * The document scan in plugin now works properly. * Improved accessibility: the hints throughout the customer journey (camera access, processing data, uploading data, requesting results) are now properly and completely voiced by screen readers in assertive mode (changes in hints are announced immediately). * Created an endpoint for license verification: `[GET] /check_license.php`. * Reduced the bundle size. * Fixed the issue with missing analysis details in the `on_complete` callback when using `result_mode: full`. * Fixed the issue when the camera switch button might have been missed. * The front camera no longer displays the user's actions as in a mirror image. * Improved error handling. * Improved support for low-performance devices. * Added the closed eyes check to the **Scan** gesture. * Internal improvements, bug fixes, major telemetry and security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-6) 1.6.15 – Dec. 27, 2024 * Simplified the checks that require user to move their head: turning left or right, tilting, or looking down. * Decreased the distance threshold for the head-moving actions: turning left or right, tilting, or looking down. * The application's behavior when the opened dev-tools are detected is now manageable. * You can now configure method signatures to make them trusted via checksum of the modified function. * Changed the wording for the `head_down` gesture: the new wording is “tilt down”. * For possible regulatory requirements, updated the [Web Adapter configuration filearrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-file-settings) with a new parameter: `extract_action_shot`. If `True`, for each gesture, the system saves the corresponding image to display it in report, e.g., closed eyes for blinking, instead of random frame for thumbnail. * Fixed an issue where an arrow incorrectly appeared after capturing head-movement gestures. * Fixed an issue where the oval disappeared when the "Great!" phrase was displayed. * Improved the selection of [the best shotarrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/best-shot) . * Security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-7) 1.6.12 – Oct. 18, 2024 * Security updates. * Resolved the issue where a video could not be generated from a sequence of frames. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-8) 1.6.0 – June 24, 2024 * The `on_complete` callback now is called upon folder status change. * Updated instructions for camera access in the Android Chrome and Facebook browsers. New keys: * `error_no_camera_access`, * `oz_tutorial_camera_android_chrome_with_screens_title`, * `oz_tutorial_camera_android_chrome_instruction_screen_click_settings`, * `oz_tutorial_camera_android_chrome_instruction_screen_permissions`, * `oz_tutorial_camera_android_chrome_instruction_screen_allow_access`, * `try_again`, * `oz_tutorial_camera_external_browser_button`, * `oz_tutorial_camera_external_browser_manual_open_link`, * `oz_tutorial_camera_external_browser_title`. * Added the `get_langs()` method that returns a list of locales available in the installed Web SDK. * Added an error for the case of setting a non-available locale. * Added an error for the case of lacking of a necessary resource. New key: `unable_load_resource`. * Changed texts for the `error_connection_lost` and `error_service_unavailable` errors. * Uploaded new Web SDK string files. * The crop function no longer adds borders for images smaller than 512×512. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-9) 1.5.3 – May 28, 2024 * In case of camera access timeout, we now display a page with instructions for users to enable camera access: default for all browsers and specific for Facebook. * Added several localization records to the [Web SDK strings file](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/localization-adding-a-custom-language-pack) . New localization keys: * `accessing_camera_switch_to_another_browser`, * `error_camera_timeout_instruction`, * `error_camera_timeout_title`, * `error_camera_timeout_android_facebook_instruction`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-10) 1.5.0 – May 05, 2024 * Improved user experience for card printer machines. Users no longer need to get that close to the screen with face frame. * Added the `disable_adaptive_aspect_ratio` parameter to the Web Plugin. This parameter switches off the default video aspect ratio adjustment to the window. * Implemented the `get_user_media_timeout` parameter for Web Plugin: when SDK can’t get access to the user camera, after this timeout it displays a hint on how to solve the problem. * Added several localization records into the [Web SDK strings file](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/localization-adding-a-custom-language-pack) . New keys: * `oz_tutorial_camera_android_edge_browser` * `oz_tutorial_camera_android_edge_instruction` * `oz_tutorial_camera_android_edge_title` * `error_camera_timeout_instruction` * `error_camera_timeout_title` * Improved the localization: when SDK can’t find a translation for a key, it displays a message in English. * You can now distribute the serverless Web SDK via Node Package Manager. * You can switch off the display of API errors in modal windows. Set the `disable_adapter_errors_on_screen` parameter in the configuration file to `True`. * The mobile browsers now use the rear camera to take the documents’ photos. * Updated samples. * Fixed the bug with abnormal 3D mask reaction when user needs to repeat a gesture. * Logging and security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-11) 1.4.3 – Apr. 15, 2024 * Fixed the bug where the warning about incorrect device orientation was not displayed when a mobile user attempted to take a video with their face in landscape orientation. * Some users may have experienced freezes while using WebView. Now, users can tap a button to continue working with the application. The corresponding string has been added to the string file in the [localization section](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/localization-adding-a-custom-language-pack) . Key: `tap_to_continue`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-12) 1.4.2 – Mar. 14, 2024 * Debugging improvements. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-13) 1.4.1 – Feb. 27, 2024 * Major security updates: improved protection against virtual cameras and JavaScript tampering. * Improved WebView support: * Added camera access instructions for applications within the generic WebView browsers on Android and iOS. The corresponding events are added to telemetry. * Improved the React Native app integration by adding the `webkit-playsinline` attribute, thereby fixing the issue of the full-screen camera launch on iOS WebView. * The iFrame using error when `iframe_allowed` = `False` is now shown properly. * New localization keys: * `oz_tutorial_camera_android_webview_browser` * `oz_tutorial_camera_android_webview_instruction` * `oz_tutorial_camera_android_webview_title` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-14) 1.4.0 – Feb. 07, 2024 * You can now use Web SDK for the [Black List](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/collection) analysis: to compare the face from your Liveness video with faces from your database. Create a collection (or collections) with these photos via [API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/collection/collection-management-in-oz-api#how-to-create-a-collection) or [Web UI](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist#creating-a-blacklist) , and add the corresponding ID (or IDs) to the `analyses.collection_ids` array in the Web Adapter configuration file. * The iframe support is back: set the `iframe_allowed` parameter in the Web Adapter configuration file to `True`. * The interval for polling for the analyses’ results is now configurable. Change it in the `results_polling_interval` parameter of the Web Adapter configuration file if necessary. * You can now select the front or back camera via Web Plugin. In the `OzLiveness.open()` method, set `cameraFacingMode` to `user` for the front camera and `environment` for the back one. This parameter only works when the `use_for_liveness` option in the Web Adapter configuration file is not set. * The plugin styles are now being added automatically. **Please remove** `` from your page to prevent style conflicts. * Fixed some bugs and updated telemetry. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-15) 1.3.1 – Jan. 12, 2024 * Improved the protection against injection attacks. * Replaced the code for Brazilian Portuguese from `pt` to `pt-br` to match the ISO standard. * Removed the `lang_default` adapter parameter. * The 3D mask transparency became customizable. * Implemented the possibility of using a master license that works with any domain. * Added the `master_license_signature` option into Web Adapter configuration parameters. * Fixed some bugs. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-16) 1.2.2 – Dec. 15, 2023 * Internal SDK improvements. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-17) 1.2.1 – Nov. 04, 2023 * To enhance your clients’ experience with Web SDK, we implemented the 3D-mask that replaces the oval during face capture. To make it work, set the `load_3d_mask` in [Configuration file settings](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-file-settings) to `true`. * Updated telemetry (logging). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-18) 1.1.5 – Oct. 27, 2023 * Logging updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-19) 1.1.4 – Oct. 2023 * Security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-20) 1.1.3 – Sept. 29, 2023 * Internal SDK improvements. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-21) 1.1.2 – Sept. 21, 2023 * Internal SDK improvements. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-22) 1.1.1 – Aug. 29, 2023 * Fixed some bugs. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-23) 1.1.0 – Aug. 24, 2023 * Changed the signature of the `on_error()` callback: now it returns an object with the error code, error message, and telemetry ID for logging. * Added the configuration parameter for the debug mode. If `True`, the Web SDK enables access to the /debug.php page, which contains information about the current configuration and the current license. * Fixed some bugs and improved logging. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-24) 1.0.2 – July 06, 2023 * If your device has multiple cameras, you can now choose one when launching the Web Plugin. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-25) 1.0.1 – July 01, 2023 * Implemented the new design for SDK and demo, including the scam protection option: the antiscam message warns user about their actions being recorded. Please check the new customization options [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/look-and-feel-customization) . * Added the Portuguese, Spanish, and Kazakh locales. * Added the combo gesture. * Added the progress bar for media upload. * Removed the Zoom in / Zoom out gestures. * On tablets, you can now capture video in landscape orientation. * Removed the `lang_allow` option from Web Adapter configuration file. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-26) 0.9.1 – Mar. 01, 2023 * In the `capture` architecture, when a virtual camera is detected, the `additional_info` parameter is inside the `from_virtual_camera` section. * You can now crop the lossless frame without losing quality. * Fixed face landmarks for the `capture` architecture. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-27) 0.9.0 – Feb. 20, 2023 * Improved the recording quality; * Reforged [licensing](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing#licensing) : * added detailed error descriptions; * now you can set the license in JS during the runtime; * when you set a license in OzLiveness.open(), it rewrites the previous license; * the license no longer requires port and protocol; * you can now specify subdomains in the license; * upon the launch of the plugin on a server, the license payload is displayed in the Docker log; * localhost and 127.0.0.1 no longer ask for a license; * The on\_capture\_complete callback is now available on any architecture: it is called once a video is taken and returns info on actions from the video; * Oz Web Liveness and Oz Web Adapter versions are displayed in the Docker log upon launch; * Deleted the deprecated adapter\_version field from order metadata; * [Added the parameters](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/launching-the-plugin/capturing-video-and-description-of-the-on_capture_complete-callback) to pass the information about the bounding box – landmarks that define where the face in the frame is; * Fixed the **Switch camera** button in Google Chrome; * Upon the start of Web SDK, the actual configuration parameters are displayed in the Docker log. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-28) 0.7.6 – Sept. 27, 2022 * Changed the extension of some Oz system files from .bin to .dat. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-29) 0.7.5 * Additional scripts are now called using the main script's address. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-30) 0.7.4 * Web SDK now can be installed via static files only (works for the `capture` type of architecture). * Web SDK can now work with CDN. * Now, you can launch several Oz Liveness plugins on different pages. In this case, you need to specify the path to scripts in `head` of these pages. circle-info If you update the Web SDK version from **0.4.0**, the license should be updated as well. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-31) 0.4.1 * Fixed a bug with the shooting screen. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-32) 0.4.0 * Added licensing (requires origin). * You can now [customize the look-and-feel](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin#customization) of Web SDK. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-33) 0.3.2044 * Fixed Angular integration. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-34) 0.3.2043 * Fixed the bug where the IMAGE\_FOLDER section was missed in the JSON response with the lossless frame enabled. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-35) 0.3.2042 * Fixed issues with the ravenjs library. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.roqg339aikth-36) 0.3.2041 * A frame for taking a documents photo is now customizable. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.xe8fuoq7ik7f) 0.3.2012 * Implemented security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.xe8fuoq7ik7f-1) 0.3.2009 (0.4.8) * Metadata now contains names of all cameras you can use. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.a9h5bq2w48eb) 0.3.2005 (0.4.8) * Video and zip formats now allow loading a lossless image. * Fixed Best Shot. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.dqjxfdf6ehkc) 0.3.2004 (0.4.8) * Separated the error code and error description in server responses. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.xvi9i48g40m) 0.3.2001 (0.4.6) * If the SDK mode is set in the environment variables `architecture`, `api_url`, it is passed to settings automatically. * In the Lite mode, you can select the best frame for any action. * In the Lite mode, an image sent via API gets the `on_complete` status only after a successful liveness. * You can manage CORS using the environment variables (CORS headers are not added by default). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.w018l7ghtzxt) 0.3.1999 * Added the folder value for `result_mode`: it returns the same value as status but with `folder_id`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.xae1tdv3apem) 0.3.1997 (0.4.5) * Updated encryption: now only metadata required to decrypt an object is encrypted. * Updated data transfer: images are being sent in separate form fields. * Added the camera parameters check. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.cno8yle7mboc) 0.3.1992 (0.4.4) * Enabled a new method for image encryption. * Optimized image transfer format. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.5fkri2a2am) 0.3.1991 * Added the `use_for_liveness` option: mobile devices use back camera by default, on desktop, flip and oval circling are off. By default, the option is switched off. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.ykjpjyws9cdg) 0.3.1990 (0.4.3) * Decreased video length for `video_selfie_best` (the **Selfie** gesture) from 1 to 0,2 sec. * Loading scripts is now customizable. * Improved UX. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.mf9eqnkxc6ih) 0.3.1988 (0.4.2) * Added the Kazakh locale. * Added a guide for accessing the camera on a desktop. * Improved logging: plugin\_liveness.php requests and recording user-agent to the server log. * Added the Lite mode. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.nsd82bvx8tp3) 0.3.1987 (0.4.1) * Added encryption. * Updated libraries. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.5je48sblxlex) 0.3.1986 (0.3.91) * You can now hide the Oz Forensics logo. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.f1sp2fqthsq5) 0.3.1984 * Updated a guide for Facebook, Instagram, Samsung, Opera. * Added handlers for unknown variables and a guide for “unknown” browsers. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/changelog#h.bgnlhf12nxqh) 0.3.1983 * Optimized memory usage for a frame. * Added a guide on how to switch cameras on using Android browsers. [PreviousUsing OzCapsula Data Container in Web SDKchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/using-ozcapsula-data-container-in-web-sdk) [NextAdministrator Guidechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide) Last updated 1 month ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz Modules Installation | Oz Knowledge this part covers the installation of Oz modules: both full and lite versions. [Standalone Installerchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone) [Oz System Litechevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite) [PreviousAnalysis reportchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/web-ui/analysis-report) [NextStandalone Installerchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Privacy Policy: Biometry and Liveness | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-1.-introduction) 1\. INTRODUCTION ----------------------------------------------------------------------------------------------------------------------------------------- We, OZ FORENSICS SOFTWARE TRADING LLC, (hereinafter referred to as “Company”, “we”, “us”, and “our”) – the developer of applications and services for facial biometric authentication and/or liveness check. Not only convenience and opportunities provided by our services, but also the right of each person to private life and protection of their personal data are equally important for us. In our everyday practice the Company does everything to prevent illegal use of personal data, as well as strives towards the protection of privacy of all parties. The objective of this Privacy Policy is to inform you – the user of the device or services of the Company – on the purposes, scope and methods of protection, periods of processing of personal data and your rights within the framework of our personal data processing procedures. For details about the information we collect on our websites, including how we use cookies, please visit our [Website Privacy Policy](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy) . [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-2.-basic-definitions) 2\. BASIC DEFINITIONS --------------------------------------------------------------------------------------------------------------------------------------------------- This Privacy Policy uses the following basic definitions: **Policy** – the present Privacy Policy. **End User or User** – a natural person who is using or interfacing with the Application to authenticate themselves when gaining access to a service or product provided by the Customer. **Application** – Oz Forensics provides various software and support services, including Device SDKs, the Oz Forensics API, and a demonstration tool. These Applications offer facial biometrics recognition, authentication, and liveness detection functionalities. **Customer** – the legal entity that purchases the Application from the Company. **Personal data** – any information that the Application may collect capable of, directly or indirectly, identifying a person. **Data subject** — natural person, who either directly, or indirectly is identified or can be identified by means of personal data. **Data processing** – any operation performed on personal data by using automated equipment or without such equipment, for instance, collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction, etc. **Third party** – a person that is not a representative of the Company, its employee, subsidiary, representative office, associated company and (or) a partner, which is bound with the Company by contractual liabilities regarding non-disclosure of personal data, as well as persons that are not identified by the respective personal data. **User device** – tablet, smartphone, or any other device operated by the end user to use an Application of the Company. **Media** – in context of this policy, media is any file sent to the Company for the purpose of offering our solutions, such as a photo or video of your face, photo of your ID. Telemetry – information about the end-user device (IP address, browser used, etc). **Metadata** – additional information collected along with images or videos, when applicable. It contains IP address, device ID, camera information, browser version, iOS/Android version, etc. **Service** – Biometry and Liveness detection softwares with each detailed scope and features available [herearrow-up-right](https://www.ozforensics.com/) , including, individually and collectively, the applicable software, Software Development Kits (SDK), updates, API, Documentation, and all associated services provided by the Company to its Customers. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-3.-area-of-policy-application) 3\. AREA OF POLICY APPLICATION --------------------------------------------------------------------------------------------------------------------------------------------------------------------- This Privacy Policy is in effect regarding any personal data in the meaning of the applicable law that the Company and/or affiliated persons of Company may obtain regarding you in the process of the use of any Application of the Company (hereinafter jointly – Services). This Privacy Policy determines the category of personal data collected or received by the Company, procedures and objectives of the use of data, as well as the conditions of granting access to such data. While this Privacy Policy governs personal information we collect and manage from external sources, it does not extend to the data practices of our Customers or other third parties, which are subject to their own distinct privacy policies. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-4.-personal-data-processed-and-collection-methods) 4\. PERSONAL DATA PROCESSED AND COLLECTION METHODS ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- In context of Biometry and Liveness Applications and services provided to its customers, the Company operates as a Processor of personal data, while the customer acts as the Controller. This applies to both the core services and any related offerings. The Company receives personal data in the following ways: **Facial Biometric Comparison (“Biometry”)**. Our Application employs Biometry, a technology that analyzes facial images uploaded by Customers, using a proprietary biometrics algorithm. This process involves: * Extracting numerical biometric data from the images using our biometrics algorithm. * Comparing this data to assess the probability of a match between two or more faces. In essence, Biometry, powered by our biometrics algorithm, enables the comparison of multiple media files (images, videos, and scanned documents, including photos) to verify if they depict the same individual. The analysis requires a minimum of two media files as input. The purposes for using Biometry are defined by the Customer, such as: verifying if the facial photo on a document matches the user's facial photo (selfie); verifying if a facial photo (selfie) matches a facial photo (selfie) in the client's database, collected during a previous interaction; comparing several facial photos; among others. **Liveness chec**k. Our Liveness solution confirms the authenticity and real-time capture of a User's image in media, protecting you and our customers against fraud. **Telemetry and metadata**. Depending on the service model, the Applications may collect user device telemetry and media metadata for analysis, services improvement and development of new services anti-fraud related. This data can include technical details such as IP address, browser type and version, and device identifiers. **Access to camera**. In order to work and perform our services, we may request permission to access your device’s Camera. We may also use your personal data to provide and maintain the services to our customers, through the following processes: (i) control license/service consumption by our customers; (ii) provide report to our Customer, with details of the results of the Biometry and Liveness checks, generated from different machine learning models. Additionally, we may use the personal data collected in the processes presented above to perform the following processing, acting as controller of the personal data and based on the purposes also presented below: * **Substantial public interes**t, preventing or detecting unlawful acts: (i) develop, maintain and improve the features and functionalities of our technology; (ii) develop new products or services related to fraud prevention; (iii) enable analyses related to information security, as well as its improvement and development to enhance the purpose of fraud prevention; (iv) investigate fraud. * **Legitimate interest**, bringing benefits to you, the user: (i) evaluation of statistics related to the number of accesses and use of our technology; (ii) improve your user experience. * **Legal obligatio**n: (i) comply with regulatory, legal, judicial orders, or even administrative orders from authorized bodies. Our Biometry and Liveness Applications employ a fully automated system, eliminating the need for manual human involvement in the standard process. This automated approach ensures efficiency and scalability across a large volume of verifications. Human intervention is reserved for specific and exceptional circumstances, to analyze fraud attempts. These cases are escalated to specialized teams for thorough investigation. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-5.-data-sharing) 5\. DATA SHARING ----------------------------------------------------------------------------------------------------------------------------------------- Data Sharing Practices: We may share your data with the following entities: * **Our Professionals**: To deliver, maintain, and enhance our services and develop new services regarding anti-fraud. * **Our Customers**: As necessary for the provision of the agreed-upon services. * **Advisors and Auditors**: In connection with corporate transactions, where data may be treated as a business asset. * **Service Providers**: To enable and facilitate the operation of our services, including security measures, data storage, and customers’ service consumption. * **Public and Government Authorities**: When legally obligated to disclose information. Data confidentiality and security are maintained when sharing. We strive to anonymize data whenever feasible. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-6.-data-storage) 6\. DATA STORAGE ----------------------------------------------------------------------------------------------------------------------------------------- Personal data collected by the Company or received by our customers are stored on secured networks, the access to which can be granted to representatives, employees, subsidiaries, associated companies, representative offices and partners of Company that are bound to Oz Forensics by contractual obligations on non-disclosure of personal data to third parties. Personal data is stored in the Company's databases until the purposes described in this Privacy Policy are achieved. Personal data collected by our customers may be stored in locations and for periods defined by them. For further details, please consult the privacy policy of the company through which you underwent the liveness and/or biometric authentication process. You are entitled to receive information regarding the processing of your personal data provided for by regulatory enactments and to send the request containing the requirement to provide information on your personal data that are stored and processed by Oz Forensics (refer to the “YOUR RIGHTS” section). [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-7.-international-data-transfer) 7\. INTERNATIONAL DATA TRANSFER ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- Oz Forensics processes personal data, which may be stored in the United States via Google (“GCP”) or Amazon (“AWS”) cloud services during the data processing period. Our databases are located in the USA. To ensure compliance with international data transfer regulations, Oz Forensics has established contracts with Google and Amazon that offer the required legal framework for these cloud storage services. Oz Forensics may transfer personal data internationally to databases located in other countries, ensuring the same level of data protection as required by GDPR through secure protocols and contractual agreements with cloud storage providers. The data is transferred through secure protocols to the aforementioned clouds, where it will remain stored in encrypted form. You have the option to directly exercise your GDPR rights with Oz Forensics at any point in time (refer to the “YOUR RIGHTS” section). [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-8.-measures-implemented-for-data-protection-purposes) 8\. MEASURES IMPLEMENTED FOR DATA PROTECTION PURPOSES ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The Company stores collected personal data on secure networks. Access to this data is limited to representatives, employees, subsidiaries, associated companies, representative offices, and partners contractually obligated to Oz Forensics to maintain the confidentiality of personal data. The Company implements the following technical measures to protect Personal Data: * We use GDPR-compliant AWS servers with internationally recognized certifications for data security and retention (more details at [https://aws.amazon.com/compliance/iso-certified/arrow-up-right](https://aws.amazon.com/compliance/iso-certified/) ). Additionally, Oz Forensics has a signed agreement in place with AWS to guarantee data safeguards and confidentiality. * To prevent physical access of unauthorized personnel, all premises owned by the Company have been equipped with means of technical security alarm, fire alarm, video surveillance and access control system; * Data encryption during data transfers (SSL encryption); * Firewall; * Intrusion detection and protection software;Other protective measures in accordance with the current possibilities of technology. Personal data protection measures, as outlined in this Section, will remain in effect until the data is depersonalized. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-9.-your-rights) 9\. YOUR RIGHTS --------------------------------------------------------------------------------------------------------------------------------------- As a data subject under the GDPR, you possess the following rights: * Obtain confirmation of the existence of the processing of your data; * Request a copy of your personal data; * Correct incomplete, inaccurate, or outdated data; * Request deletion of personal data that is unnecessary, excessive, or processed in violation of GDPR. * Withdraw previously given consent to process your personal data; * Request restriction of personal data processing or object to the personal data processing; * Request the portability of data to another service or product provider. To exercise your rights, please access our [Privacy Centralarrow-up-right](https://privacy-central.securiti.ai/#/dsr/4f9a98a9-9564-4bb7-a8c3-20eb7803c484) . Exercising your right to receive a copy of your personal data cannot infringe upon the rights and freedoms of other individuals. To ensure your security and enable you to exercise your data rights, we need to verify your identity. This verification may involve requesting additional personal information. By submitting a rights request, you authorize us to collect, use, process, and store your personal data as described in this Privacy Policy. We will receive and analyze all requests. If your request is denied, we will provide a proper justification for the refusal. Oz Forensics commits to processing requests received according to this section. This will be done as quickly as possible, but within one month at the latest. The one-month timeframe begins upon confirmation of your identity or, if not requested by the company, upon receipt of your request. The requested information will then be provided to you. For complex or numerous requests, the company may extend the information provision period by an additional two months, provided you are notified beforehand. In addition, you can also lodge a complaint with the Portuguese Supervisory Authority, the Comissão Nacional de Proteção de Dados (CNPD). Please note that even though we use automated processes, Oz's participation in the authentication and/or liveness check process ends with the processing of your facial biometrics and sending the result to our customer. This means that our customer is responsible for the final decision on whether or not to approve the transaction or service provision. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-10.-policy-changes) 10\. POLICY CHANGES ----------------------------------------------------------------------------------------------------------------------------------------------- This policy may be occasionally amended to the extent permitted by the laws of the UAE, Singapore, and the EU, as well as internationally recognized standards for personal data protection. All amendments to the Privacy Policy will be reflected in the present website, indicating the date, when the amendment has come into effect. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-11.-contact-us) 11\. CONTACT US --------------------------------------------------------------------------------------------------------------------------------------- All queries regarding the provisions of the Policy may be sent to us by one of the following means: OZ FORENSICS SOFTWARE TRADING LLC Office 384, Saih Shuaib Bldg 2 area, DIC, Dubai, UAE You can directly contact our Data Protection Officer (DPO), who is responsible for Oz Forensics Privacy Program, by sending an email to: [\[email protected\]envelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#0676746f7067657f46697c6069746368756f65752865696b) [PreviousPrivacy Policy: Oz Demo Application and Web Demochevron-left](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo) Last updated 6 months ago Was this helpful? * [1\. INTRODUCTION](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-1.-introduction) * [2\. BASIC DEFINITIONS](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-2.-basic-definitions) * [3\. AREA OF POLICY APPLICATION](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-3.-area-of-policy-application) * [4\. PERSONAL DATA PROCESSED AND COLLECTION METHODS](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-4.-personal-data-processed-and-collection-methods) * [5\. DATA SHARING](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-5.-data-sharing) * [6\. DATA STORAGE](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-6.-data-storage) * [7\. INTERNATIONAL DATA TRANSFER](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-7.-international-data-transfer) * [8\. MEASURES IMPLEMENTED FOR DATA PROTECTION PURPOSES](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-8.-measures-implemented-for-data-protection-purposes) * [9\. YOUR RIGHTS](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-9.-your-rights) * [10\. POLICY CHANGES](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-10.-policy-changes) * [11\. CONTACT US](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness#id-11.-contact-us) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Responsible Disclosure Policy | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-1.-introduction) **1\. INTRODUCTION** --------------------------------------------------------------------------------------------------------------------------------------- Oz Forensics is dedicated to maintaining the highest standards of security for its customers, employees, and systems. This policy reflects the company’s commitment to transparency, collaboration, and accountability. By encouraging responsible disclosure of vulnerabilities and violations, Oz Forensics strengthens its security posture and builds trust with the broader community. The Bug Bounty Program further incentivizes security researchers to contribute to the company’s security by offering rewards for valid vulnerability reports. [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-2.-legal-posture) **2\. LEGAL POSTURE** ----------------------------------------------------------------------------------------------------------------------------------------- Oz Forensics commits to protecting individuals who report vulnerabilities or violations in good faith. The company will not pursue legal action against individuals who: ▪ Conduct security testing without causing harm to Oz Forensics or its customers. ▪ Operate within the scope of the vulnerability disclosure program or Bug Bounty Program. ▪ Test products without impacting customers or obtain prior consent from customers before testing their systems. ▪ Comply with applicable laws in their jurisdiction and that of Oz Forensics. ▪ Refrain from publicly disclosing vulnerability details before an agreed-upon timeframe. This policy ensures that researchers, whistleblowers, and Bug Bounty participants are treated fairly and that their contributions are valued. [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-3.-vulnerability-disclosure) **3\. VULNERABILITY DISCLOSURE** --------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#how-to-submit-a-vulnerability) How to Submit a Vulnerability Reports of vulnerabilities can be submitted to Oz Forensics’ Product Security Team via the form [**Report a Security Vulnerability**arrow-up-right](https://www.ozforensics.com/report-a-security-issue) on the website or by designated email address: [**\[email protected\]**envelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#cfbcaaacbabda6bbb68fa0b5a9a0bdaaa1bca6acbce1aca0a2) . The company ensures that all submissions are reviewed promptly and handled with confidentiality. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#preference-prioritization-and-acceptance-criteria) Preference, Prioritization, and Acceptance Criteria Oz Forensics prioritizes and triages submissions based on the following criteria: ▪ Reports written in clear and concise English are given higher priority. ▪ Submissions that include proof-of-concept code or detailed technical information are prioritized. ▪ Reports containing only crash dumps or automated tool outputs may receive lower priority. ▪ Vulnerabilities outside the defined scope may also receive lower priority. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#what-we-would-like-to-see-from-you) What we would like to see from You ▪ A detailed description of the vulnerability, including how it was discovered, its potential impact, and possible remediation steps. ▪ Any proof-of-concept code or supporting evidence to help validate the issue. ▪ Information about any plans for public disclosure, if applicable. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#what-you-can-expect-from-oz-forensics) What you can expect from Oz Forensics ▪ Acknowledgment of your report within two business days. ▪ A clear timeline for remediation and regular updates on progress. ▪ Open communication to discuss the issue and its resolution. ▪ Notification when the vulnerability has been validated and fixed. ▪ Public recognition for your contribution, if desired, once the issue is resolved. If communication challenges arise, Oz Forensics may involve a neutral third party to facilitate resolution. [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-4.-update-to-this-responsible-disclosure-policy) **4\. UPDATE TO THIS RESPONSIBLE DISCLOSURE POLICY** ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- We may update this Responsible Disclosure Policy at any time. Any changes will become effective once the revised policy is published on or through the website. Such updates will be duly disclosed by Oz Forensics. [hashtag](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-5.-talk-to-us) **5\. TALK TO US** ----------------------------------------------------------------------------------------------------------------------------------- We value your feedback. Please don’t hesitate to reach out if you have any questions, comments, or suggestions regarding this policy or the handling of vulnerability information. You can do so by sending an email to: [**\[email protected\]**envelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#e99a8c8a9c9b809d90a986938f869b8c879a808a9ac78a8684) , or by contacting one of our offices: **OZ FORENSICS SOFTWARE TRADING LLC Office 384, Saih Shuaib Bldg 2 area, DIC, Dubai, UAE** [PreviousOz System Litechevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite) [NextCookie Policychevron-right](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy) Last updated 6 months ago Was this helpful? * [1\. INTRODUCTION](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-1.-introduction) * [2\. LEGAL POSTURE](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-2.-legal-posture) * [3\. VULNERABILITY DISCLOSURE](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-3.-vulnerability-disclosure) * [How to Submit a Vulnerability](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#how-to-submit-a-vulnerability) * [Preference, Prioritization, and Acceptance Criteria](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#preference-prioritization-and-acceptance-criteria) * [What we would like to see from You](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#what-we-would-like-to-see-from-you) * [What you can expect from Oz Forensics](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#what-you-can-expect-from-oz-forensics) * [4\. UPDATE TO THIS RESPONSIBLE DISCLOSURE POLICY](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-4.-update-to-this-responsible-disclosure-policy) * [5\. TALK TO US](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy#id-5.-talk-to-us) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Using OzCapsula Data Container in Native SDK | Oz Knowledge OzCapsula is our proprietary data format, designed to provide end-to-end protection and maintain data integrity during transmission. We've introduced this format in 8.22 and implemented new methods to use it: * `createMediaCaptureScreen(request)` for video capture: this method takes a video and packages it into a data container. * `AnalysisRequest.addContainer` for processing data: this method adds container to the analysis request. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#code-examples) Code Examples -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Please follow the links below to access the examples. You can also refer to the illustrative examples shown below the links. * [Kotlinarrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-android/-/blob/master/sample-kotlin/src/main/java/com/ozforensics/liveness/sample/LivenessContainerActivity.kt) * [Javaarrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-android/-/blob/master/sample-java/src/main/java/com/ozforensics/liveness/sample/LivenessContainerActivity.java) * [Swiftarrow-up-right](https://gitlab.com/oz-forensics/public/oz-liveness-ios-sample/-/blob/main/OZLiveness/DataContainerViewController.swift?ref_type=heads) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#kotlin) **Kotlin** Copy // capture and pack media val referentPhoto = MediaRequest.UserMedia(OzAbstractMedia.OzDocumentPhoto(OzMediaTag.Blank, referentPhotoPath)) val blinkVideo = MediaRequest.ActionMedia(OzAction.EyeBlink) val scanVideo = MediaRequest.ActionMedia(OzAction.Scan) val intent = OzLivenessSDK.createMediaCaptureScreen( CaptureRequest( listOf( AnalysisProfile( Analysis.Type.BIOMETRY, listOf(referentPhoto, scanVideo) ), AnalysisProfile( Analysis.Type.QUALITY, listOf(referentPhoto, scanVideo, blinkVideo) ), ), ), sessionToken ) startActivityForResult(intent, REQUEST_CODE_SDK) // subscription to result override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_CODE_SDK) { when (resultCode) { OzLivenessResultCode.USER_CLOSED_LIVENESS -> { /* user closed the screen */ } OzLivenessResultCode.SUCCESS -> { // result val container = OzLivenessSDK.getContainerFromIntent(data) ... } else -> { // error val errorMessage = OzLivenessSDK.getErrorFromIntent(data) ... } } } } // launching analyses AnalysisRequest.Builder() .addContainer(container) .build() .run( object: AnalysisRequest.AnalysisListener { override fun onSuccess(result: RequestResult) { ... } override fun onError(exception: OzException) { ... } } ) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#swift) **Swift** [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#methods-and-properties) Methods and Properties -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Please check the methods and properties below. You can also find them in the corresponding sections of [iOS](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/ios-sdk-methods-and-properties#data-container) and [Android](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-sdk-methods-and-properties#data-container) documentation sections. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#addcontainer) addContainer This method replaces `addAnalysis` in the `AnalysisRequest` structure when you use the data container flow. **Input** **Parameter** **Type** **Description** OzDataContainer bytearray\[\] An encrypted file containing media and collateral info, the output of the [createMediaCaptureScreen](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#createmediacapturescreen) method #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#createmediacapturescreen) createMediaCaptureScreen Captures media file with all information you need and packages it into a data container. **Input** **Parameter** **Type** **Description** request [CaptureRequest](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#public-data-class-capturerequest) Detects a request for video capture session\_token String Token for current session **Output** **Parameter** **Type** **Description** OzDataContainer bytearray\[\] An encrypted file containing media and collateral info #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#public-data-class-capturerequest) public data class CaptureRequest Detects a request for video capture. **Parameter** **Type** **Description** analysisProfileList List<[AnalysisProfile](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#public-data-class-analysisprofile) \> A list of objects that contain information on media and analyses that should be applied to them folderMeta (optional) Map Additional folder metadata additionalMediaList (optional) List<[MediaRequest](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#public-sealed-class-mediarequest) \> Media files that you need to upload to server, but it’s not necessary for analyses cameraPosition (optional) String `front` (default) – front camera `back` – rear camera #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#public-data-class-analysisprofile) public data class AnalysisProfile Contains information on media files and analyses that should be applied to them. **Parameter** **Type** **Description** mediaList List<[MediaRequest](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#public-sealed-class-mediarequest) \> A list of media to be analyzed type String ([Type](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-sdk-methods-and-properties#h.fr9jc6r5rcc) (Android) or [AnalysisType](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/ios-sdk-methods-and-properties#h.qww0i8kvhvdr) (iOS)) Analysis type params (optional) Map Additional analysis parameters #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#public-sealed-class-mediarequest) public sealed class MediaRequest Stores information about a media file. circle-exclamation Please note: you should add `actionMedia` OR `userMedia`, these parameters are mutually exclusive. Parameter Type Description id String (UUID v4) Media ID actionMedia [OzAction](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-sdk-methods-and-properties#h.2nyke2meu4aw) (Android) or [OzVerificationMovemen](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/ios-sdk-methods-and-properties#h.20yp3ix24ijd) t (iOS) An action that user should perform in a video userMedia [OzAbstractMedia](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-sdk-methods-and-properties#h.s2ye0si7dzc2) (Android) or [OZMedia](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/ios-sdk-methods-and-properties#h.hizmhq9c5cq9) (iOS) An external media file, e.g., a reference or a document photo #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#exceptions) Exceptions **Error** **Text** **Description** session\_token\_is\_empty Session token must not be empty Session token is mandatory but hasn’t been provided data\_container\_internal\_failure\_1 Internal failure occurred while processing the data container The device doesn’t have enough memory to proceed * data\_container\_internal\_failure\_2 * data\_container\_internal\_failure\_3 * data\_container\_internal\_failure\_4 Internal failure occurred while processing the data container SDK couldn’t generate the container. Try again data\_container\_internal\_failure\_1000 Internal failure occurred while processing the data container Any other error not from the list above If, during the video capture, SDK encounters an error that prevents user scenario from completion, the data container is deleted. Should you have any questions, please contact us. [PreviousSecurity Recommendationschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/security-recommendations) [NextOz Liveness Web SDKchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk) Last updated 24 days ago Was this helpful? * [Code Examples](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#code-examples) * [Kotlin](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#kotlin) * [Swift](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#swift) * [Methods and Properties](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/using-ozcapsula-data-container-in-native-sdk#methods-and-properties) Was this helpful? sun-brightdesktopmoon Copy // capture and pack media let mediaRequest = MediaRequest.actionMedia(.selfie) let profile = AnalysisProfile(mediaList: [mediaRequest], type: .quality, params: ["extract_best_shot" : true]) let request = CaptureRequest(analysisProfileList: [profile], cameraPosition: cameraPosition) self.ozLivenessVC = try OZSDK.createMediaCaptureScreen(self, request, sessionToken: sessionToken) self.present(ozLivenessVC, animated: true) // subscription to result extension ViewController: LivenessDelegate { func onError(status: OZVerificationStatus?) { // error handling } func onResult(container: DataContainer) { let analysisRequest = AnalysisRequestBuilder() analysisRequest.addContainer(container) analysisRequest.run(statusHandler: { [weak self] state in }, errorHandler: { [weak self] error in // error }) { result in // result } } sun-brightdesktopmoon --- # Users and Companies | Oz Knowledge In the screenshot: button 1 – to edit a user, button 2 – to edit a company, 3 – to delete a user. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FonD7fYs7d9qqkIymVO3b%252Fmain%2520page%2520marked.png%3Falt%3Dmedia%26token%3Db90f6832-da40-47b8-bb12-4d4af3726ef4&width=768&dpr=3&quality=100&sign=2338eb61&sv=2) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#adding-a-company) Adding a Company --------------------------------------------------------------------------------------------------------------------------------- 1. Click the **Add Company** button in the **Users** (or **Companies**) tab. 2. Enter the name of the company and click the **Submit** button in the window that appears. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FUw9qAMRYsS5Mu8SarWCY%252Faddcompany-Ennew.png%3Falt%3Dmedia%26token%3D2322ad0f-6614-4aa0-aeb0-5c70aaa20d99&width=768&dpr=3&quality=100&sign=bc38aebc&sv=2) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#adding-a-user) Adding a User --------------------------------------------------------------------------------------------------------------------------- 1. Click the **Add User** button on the **Users** tab. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fq9YxbId9xICerttKO102%252Fadd%2520user.png%3Falt%3Dmedia%26token%3D9dba8e03-6d0f-45b7-9dfd-6573a7736904&width=768&dpr=3&quality=100&sign=f74fdd05&sv=2) 2\. Fill in the fields: * **Company** – select from the dropdown menu. You can also add a company here by clicking the **Add company** button. You just need to fill in the **Company name** field in the new window and click **Submit**. Please note: ADMIN and OPERATOR can't belong to any company. If you choose a company for a user with one of these roles, it won't be saved. * **Email** – mailbox. It will be the user's login. * **Password**, **Confirm password**, or use automatic password generation by clicking the **Generate password** button. Next to it, the **gear** button opens the password generator settings window. * **Last name** and **First name** fields are mandatory to fill. **Middle name** is optional. * **User type** – select the user role from the dropdown menu. Please note: for CLIENT, CLIENT ADMIN, or CLIENT OPERATOR, you can also enable the **Service account** option. This option extends the authorization time. Please find the additional information on user roles [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) . * The **Send credentials** block of checkboxes allows you to choose where to send the credentials of this user: to you, to this user's email, or to another e-mail. * **Can start analyses** – you can disable any analysis for a user if needed. In this case, this user won't be able to make the appropriate requests. Once you finish filling in the fields, click the **Submit** button. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#editing-a-company) Editing a Company ----------------------------------------------------------------------------------------------------------------------------------- You can edit the company in the **Users** or **Companies** tab by clicking on the company in the list or on the **Edit company** button. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FxmwHGkNWFbVX5lldH2uT%252Fedit%2520company.png%3Falt%3Dmedia%26token%3D6a3cd890-eaa7-4f53-b1c6-f46a854fb3bd&width=768&dpr=3&quality=100&sign=d89649ea&sv=2) The **Users** tab ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F0H0nZ3n4aQDC1VMSiIvZ%252Fedit%2520comp%2520from%2520comp.png%3Falt%3Dmedia%26token%3D3f2f5571-45a1-4d76-a1a7-5845ca128647&width=768&dpr=3&quality=100&sign=c32a8eaf&sv=2) The **Companies** tab * In the **Edit Company** window, in addition to editing the name, you can add **Report Templates.** ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F1cJVMPIYqRp1aBRlfcDa%252Fcompany.png%3Falt%3Dmedia%26token%3D448157c3-4c6f-48fc-b941-b2724d7f8fd5&width=768&dpr=3&quality=100&sign=b380f2d1&sv=2) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#editing-a-user) Editing a User ----------------------------------------------------------------------------------------------------------------------------- To edit a user, proceed to the **Users** tab and find the one you want to edit. Use the **Filter** tool if needed. circle-info To delete a user, click the **trash bin** button near the user's name. Please note: a user cannot be deleted if they have any orders. Once found, click the user’s name or the **Edit user** button next to it. A new window will appear. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FnHpnl25eFtthwnwgBHGQ%252Fscreentesten.jpg%3Falt%3Dmedia%26token%3D835959d0-d329-444b-880d-74cdb7ed4f56&width=768&dpr=3&quality=100&sign=6c2556b8&sv=2) Here, you can: * change the user’s email; * change the user’s password – mark the **Change password** checkbox and fill in the form that appears; * switch the user off if they are not active anymore – unmark the **User is active** checkbox; * change first, middle, and last name in the appropriate fields; * switch on or off analyses the user can request. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#managing-your-account) Managing Your Account ------------------------------------------------------------------------------------------------------------------------------------------- The **user account** can be opened by clicking on your username in the top-right corner. Next to it, there is the **logout** button. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FWi1vRPuGdAodySZykNaq%252FScreenshot_159.jpg%3Falt%3Dmedia%26token%3D11531158-b22e-4d00-8d94-9d8c40d99a66&width=768&dpr=3&quality=100&sign=5f12330d&sv=2) * In the **Language** drop-down menu, you can change the Web UI language. Please note: your choice won't affect the report templates, as these templates are being uploaded separately. * To change your password, click the **Change password** button. Fill in a password changing form that opens. Once you're done, click the **Submit** button. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fix6eSTQMUj0yl3cJnqvt%252Fuser%2520edit.png%3Falt%3Dmedia%26token%3D662b1ae6-1492-42eb-ace7-30044d7d5bd0&width=768&dpr=3&quality=100&sign=b2475107&sv=2) [PreviousRequesting Analyseschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-order) [NextCollectionchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist) Last updated 28 days ago Was this helpful? * [Adding a Company](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#adding-a-company) * [Adding a User](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#adding-a-user) * [Editing a Company](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#editing-a-company) * [Editing a User](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#editing-a-user) * [Managing Your Account](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#managing-your-account) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz System Lite | Oz Knowledge ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#installation) Installation * [Contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#357c5b535a755a4f535a47505b465c56461b565a58) to get the docker image archive link and download the archive * Load the image to docker: `docker load -i ` * Run docker: `docker run -p {port}:80 -t ozforensics/oz-api-lite:{tag}` circle-info `The container might need several minutes to start.` ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#main-parameters) Main Parameters The parameters are set by environment variables when starting the Docker container. The following parameters are valid: * `NUM_WORKERS` – maximum for the analyses performing at once; might be different in different cases. _Default: 16._ * `TF_ENABLE_ONEDNN_OPTS` – used for acceleration. _Default: 1, for AMD processors, set 0._ ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#usage) Usage Interaction with the biometric processor is based on the REST API. The HTTPS protocol is used. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#api-access-point) API Access Point API access base URL: **https://{hostname}/v1/face/pattern** or **https://{hostname}/v1/face/liveness** depending on method (please refer to [Oz API Lite methods](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite#examples-of-methods) ). Where: * **{hostname}** – the hostname and port of the deployed biometric processor server. **Example:** `localhost/v1/face/pattern` The API supports the following request content types ("Content-Type" HTTP header): * «multipart/form-data»; * «application/octet-stream»; * «image/jpeg» or «image/png»; ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#http-response-codes) HTTP Response Codes Response codes Description 200 OK The method call completed successfully. The biometric processor response is included in the HTTP BODY. 400 Bad Request The method call failed on the Client side. The error code is included in the HTTP BODY. 500 Internal Server Error The method call failed on the biometric processor side. The error code is included in the HTTP BODY. [PreviousStandalone Installerchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone) [NextResponsible Disclosure Policychevron-right](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy) Last updated 1 year ago Was this helpful? * [Installation](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#installation) * [Main Parameters](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#main-parameters) * [Usage](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#usage) * [API Access Point](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#api-access-point) * [HTTP Response Codes](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite#http-response-codes) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Privacy Policy: Oz Demo Application and Web Demo | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-1.-introduction) 1\. INTRODUCTION ---------------------------------------------------------------------------------------------------------------------------------------------------- We, OZ FORENSICS SOFTWARE TRADING LLC, (hereinafter referred to as “Owner”, “we”, “us”, and “our”) – the developer of applications and services for facial biometric authentication and/or liveness check. Not only convenience and opportunities provided by our services, but also the right of each person to private life and protection of their personal data are equally important for us. In our everyday practice the Company does everything to prevent illegal use of personal data, as well as strives towards the protection of privacy of all parties. The objective of this Privacy Policy is to inform you – the user of our Demo App and Web Demo tools (hereinafter jointly – Demo Tools) – on the purposes, scope and methods of protection, periods of processing of personal data and your rights within the framework of our personal data processing procedures. For details about the information we collect on our websites, including how we use cookies, please visit our [Website Privacy Policy](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy) . [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-2.-basic-definitions) 2\. BASIC DEFINITIONS -------------------------------------------------------------------------------------------------------------------------------------------------------------- This Privacy Policy uses the following basic definitions: **Policy** – the present Privacy Policy **End User or User** – a natural person who is using or interfacing with the Demo App or Web Demo. **Demo App** – an application provided by Oz Forensics that can be downloaded onto your device through app stores. This application has the specific purpose of testing our facial biometrics comparison (BIOMETRY) and liveness check (LIVENESS) functionalities services, which are provided to our customers. **Web Demo** – a functionality available in Oz Forensics website [(arrow-up-right](https://ozforensics.com/try_for_free/ozlivenesspublicdemo?_gl=1*19agk9s*_up*MQ..*_ga*NTU5NzczNzIzLjE3NDcwNTI1NjA.*_ga_XDLHWQ0650*czE3NDcwNTgzMDUkbzIkZzAkdDE3NDcwNTgzMDUkajAkbDAkaDA) [herearrow-up-right](https://www.ozforensics.com/trynow) ) for the specific purpose of testing our liveness detection web SDK, which is provided to our customers. **Demo Tools** – for the purposes of this policy: Demo App and Web Demo. **Customer** – the legal entity that purchases the services from the Company. **Personal data** – any information that the Demo App or Web Demo may collect capable of, directly or indirectly, identifying a person. **Data subject** – natural person, who either directly, or indirectly is identified or can be identified by means of personal data. **Data processing** – any operation performed on personal data by using automated equipment or without such equipment, for instance, collection, recording, organization, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction, etc. **Logs** – records that may include details about user actions, system performance, and security events within an application **Third party** – a person that is not a representative of the Company, its employee, subsidiary, representative office, associated company and (or) a partner, which is bound with the Company by contractual liabilities regarding non-disclosure of personal data, as well as persons that are not identified by the respective personal data. **User device** – tablet, smartphone or any other device operated by the end user to use the Demo App or Web Demo. **Media** – in context of this policy, media is any file sent to the Company for the purpose of offering the functionalities mentioned in this policy (Demo App and Web Demo). **Telemetry data** – information about the end-user device (IP address, browser used, etc). **Metadata** – additional information collected along with the media, when applicable. It contains IP address, device ID, camera information, browser version, iOS/Android version, etc. **SDK (Software Development Kit)** – a set of tools and programs used by developers to build applications for a specific platform or system. **Service** – Biometry and Liveness detection softwares with each detailed scope and features available [herearrow-up-right](https://www.ozforensics.com/) , including, individually and collectively, the applicable software, Software Development Kits (SDK), updates, API, Documentation, and all associated services provided by the Company to its Customers. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-3.-types-of-data-collected) 3\. TYPES OF DATA COLLECTED -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The Company receives personal data in the following ways: * **Facial Biometric Comparison (“Biometry”)**. Biometry is a technology that analyzes facial images using a proprietary biometrics algorithm. This process involves: * Extracting numerical biometric data from the images using our biometrics algorithm. * Comparing this data to assess the probability of a match between two or more faces. In essence, Biometry, powered by our biometrics algorithm, enables the comparison of multiple media files (images, videos, and scanned documents, including photos) to verify if they depict the same individual. The analysis requires a minimum of two media files as input. * **Liveness check**. Our Liveness solution confirms the authenticity and real-time capture of a User's image in media, protecting you and our customers against fraud. In addition, we may also collect telemetry from Your device, metadata from the media You send to us, as well generate logs regarding Your interactions with our Demo Tools. In this Privacy policy, all such information mentioned above is referred to as “Data” or “Personal Data”. **Note:** You are responsible for any third-party Personal Data obtained, published or shared through our Demo Tools and confirm that they have the third party’s consent to provide the Data or Personal Data to the Owner. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-3.-use-scenarios-and-how-the-owner-collects-stores-and-processes-your-personal-data) 3\. USE SCENARIOS AND HOW THE OWNER COLLECTS, STORES AND PROCESSES YOUR PERSONAL DATA --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The Personal Data is collected to demonstrate the facial recognition capabilities in the Oz Forensics Demo Tools. Processing Your Personal Data is a necessary part of the service the Owner provides to You in these demonstrations. In the context of Biometry and Liveness Applications and services provided by us through Demo App and Web Demo, the Company operates as a Controller of personal data, backed by the legal basis of Consent. That is, when using our Demo Tools you consent with the processing of your personal data as described below, where you can find details regarding our Demo Tools scenarios: ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-4.1.-if-you-are-using-demo-app) 4.1. If you are using Demo App Demo App provides testing for Biometry and Liveness Check. * **On device scenario:** When the demo app is downloaded for testing, all data processing occurs locally on your device. With the exception of Telemetry data, no information is transmitted to our servers in this scenario. * **Server-based scenario:** When you request demo access to the server-based scenario in the Demo App, we collect media and metadata in addition to telemetry data. See details below. **4.1.1. On device scenario** This scenario is only available for Demo App. By default, when You are using the Demo App, the Owner does not collect, transfer, process or by any other means interact with any of your Personal Data, except for Telemetry data, which is sent to Oz Forensics servers for the purposes of product/service improvement or development, analytics and service provision, always related to anti-fraud technologies. All other Personal Data you are uploading to the Demo App is processed exclusively on Your device. The Demo Application does not transfer any other Personal Data to Oz Forensics servers or to third-party servers. **4.1.1.1. Place of storage and processing** The Personal Data is processed on Your own device and is not transferred to the Owner, except for Telemetry data, as mentioned above, which is processed in Singapore and in the United States of America. For further information, please contact the Owner. **4.1.1.2. Methods of processing** Except for Telemetry data, the Owner does not process any of Your Personal Data. The data processing is carried out using your own device. Personal Data is not transferred to anyone (including the Owner) and is stored solely in your device. **4.1.1.3. Retention time** In your device, the Personal Data is kept only for the duration of the demo session and it is not stored or transferred outside of this Demo Application and the device. Telemetry data is stored in the Owner's databases until the purposes described in this Privacy Policy are achieved. **4.1.2. Server-based scenario** When you are using the Demo App, by default you will not have access to server-based scenario, which means that your Personal Data will be processed on Your device only, as described here above in “On device scenario” section. However, You may request a demo access to the server-based solution by filling out an application form on our website. In this case, You will provide the Owner with your personal data (such as name and email) so the Owner can contact You and provide access to the server-based solution. If the Owner decides to grant You an access to the server-based solution, You will be provided with a unique combination of login and password. In the server-based scenario, we collect media, metadata and telemetry data. **4.1.2.1. Place of storage and processing** If You are using the server-based scenario, your Personal Data will be processed on Owners servers located in Singapore and in the United States of America. **4.1.2.2. Methods of processing** In case You are using a server-based solution the Owner processes Your Personal Data in a proper manner and shall take appropriate security measures to prevent unauthorized access, disclosure, modification, or unauthorized destruction of the Personal Data. The Personal Data processing is carried out using computers and/or IT enabled tools, following organizational procedures and modes strictly related to the purposes indicated here above. In addition to the data controller, in some cases, the Personal Data may be accessible to certain types of persons in charge, involved with the operation of the Owner (administration, legal, system administration) or external parties (such as hosting provider) appointed, if necessary, as data processors by the Owner. The updated list of these parties may be requested from the Owner by You at any time. **4.1.2.3. Retention time** The Personal Data is kept until You decide to delete it. Once you decide to delete your Personal Data it will not any longer be stored on the Owner’s Server. Please note that some information may be retained if we have a legal obligation to do so, or if it's necessary for the establishment, exercise, or defense of legal claims, in accordance with GDPR requirements. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-4.2.-if-you-are-using-web-demo) 4.2. If you are using Web Demo Web Demo provides testing for Liveness Check only and is always server-based. In the server-based scenario, we collect media, metadata and telemetry data. **4.2.1.1. Place of storage and processing** Personal Data will be processed on Owners servers in Singapore and in the United States of America. **4.2.1.2. Methods of processing** In case if You are using server-based solution the Owner processes Your Personal Data in a proper manner and shall take appropriate security measures to prevent unauthorized access, disclosure, modification, or unauthorized destruction of the Personal Data. The Personal Data processing is carried out using computers and/or IT enabled tools, following organizational procedures and modes strictly related to the purposes indicated here above. In addition to the data controller, in some cases, the Personal Data may be accessible to certain types of persons in charge, involved with the operation of the Owner (administration, legal, system administration) or external parties (such as hosting provider) appointed, if necessary, as data processors by the Owner. The updated list of these parties may be requested from the Owner by You at any time. **4.2.1.3. Retention time** The Personal Data is kept until You decide to delete it. Once you decide to delete your Personal Data it will not any longer be stored on the Owner’s Server. Please note that some information may be retained if we have a legal obligation to do so, or if it's necessary for the establishment, exercise, or defense of legal claims, in accordance with GDPR requirements. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-4.3.-final-considerations) 4.3. Final considerations Additionally, we may use the personal data collected in the processes presented above to perform the following processing, acting as controller of the personal data and based on the purposes also presented below: * **Substantial public interest**, preventing or detecting unlawful acts: (i) develop, maintain and improve the features and functionalities of our technology; (ii) develop new products or services related to fraud prevention; (iii) enable analyses related to information security, as well as its improvement and development to enhance the purpose of fraud prevention; (iv) investigate fraud. * **Legitimate interest**, bringing benefits to you, the user: (i) evaluation of statistics related to the number of accesses and use of our technology; (ii) improve your user experience. * **Legal obligation:** (i) comply with regulatory, legal, judicial orders, or even administrative orders from authorized bodies. The Personal Data may be freely provided by You if You wish to use our Demo Tools. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-5.-data-sharing) 5\. DATA SHARING ---------------------------------------------------------------------------------------------------------------------------------------------------- We may share your data with the following entities: * **Our Professionals:** To deliver, maintain, and enhance our services and develop new services regarding anti-fraud. * **Advisors and Auditors:** In connection with corporate transactions, where data may be treated as a business asset. * **Service Providers:** To enable and facilitate the operation of our services, including security measures and data storage. * **Public and Government Authorities:** When legally obligated to disclose information. Data confidentiality and security are maintained when sharing. We strive to anonymize data whenever feasible. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-6.-device-permissions-for-personal-data-access) 6\. DEVICE PERMISSIONS FOR PERSONAL DATA ACCESS ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Our Demo Tools may request permission to access Your device’s camera. It is used for accessing the camera or capturing images and video from the device to demonstrate our capabilities in the Demo Tools. By default, this permission must be granted by You before the respective information can be accessed. Once the permission has been given, it can be revoked by You at any time. In order to revoke these permissions, You may refer to the device settings or contact the Owner for support at the contact details provided in the present document. The exact procedure for controlling app permissions may be dependent on Your device and software. Please note that the revoking of such permission might impact the proper functioning of our Demo Tools. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-7.-system-logs-and-maintenance) 7\. SYSTEM LOGS AND MAINTENANCE ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- For operation and maintenance purposes, we may use personal data (such as IP Address, operating system version, SDK version, package name, device ID, phone model, time stamp) to generate files (System logs) that record interaction with our Demo Tools. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-8.-measures-implemented-for-data-protection-purposes) 8\. MEASURES IMPLEMENTED FOR DATA PROTECTION PURPOSES ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ The Company stores collected personal data on secure networks. Access to this data is limited to representatives, employees, subsidiaries, associated companies, representative offices, and partners contractually obligated to Oz Forensics to maintain the confidentiality of personal data. The Company implements the following technical measures to protect Personal Data: * We use GDPR-compliant AWS servers with internationally recognized certifications for data security and retention (more details at [arrow-up-right](https://aws.amazon.com/compliance/iso-certified/) [https://aws.amazon.com/compliance/iso-certified/arrow-up-right](https://aws.amazon.com/compliance/iso-certified/) ). Additionally, Oz Forensics has a signed agreement in place with AWS to guarantee data safeguards and confidentiality. * To prevent physical access of unauthorized personnel, all premises owned by the Company have been equipped with means of technical security alarm, fire alarm, video surveillance and access control system; * Data encryption during data transfers (SSL encryption); * Firewall; * Intrusion detection and protection software; * Other protective measures in accordance with the current possibilities of technology. Personal data protection measures, as outlined in this section, will remain in effect until the data is depersonalized. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-9.-our-demo-tools-do-not-support-do-not-track-requests) 9\. OUR DEMO TOOLS DO NOT SUPPORT “DO NOT TRACK” REQUESTS ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ To determine whether any of the third-party services it uses honor the “Do Not Track” requests, please read their privacy policies. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-10.-your-rights) 10\. YOUR RIGHTS ---------------------------------------------------------------------------------------------------------------------------------------------------- As a data subject under the GDPR, you possess the following rights: * Obtain confirmation of the existence of the processing of your data; * Request a copy of your personal data; * Correct incomplete, inaccurate, or outdated data; * Request deletion of personal data that is unnecessary, excessive, or processed in violation of GDPR. * Withdraw previously given consent to process your personal data; * Request restriction of personal data processing or object to the personal data processing; * Request the portability of data to another service or product provider. To exercise your rights, please access our [Privacy Centralarrow-up-right](https://privacy-central.securiti.ai/#/dsr/4f9a98a9-9564-4bb7-a8c3-20eb7803c484) . Exercising your right to receive a copy of your personal data cannot infringe upon the rights and freedoms of other individuals. To ensure your security and enable you to exercise your data rights, we need to verify your identity. This verification may involve requesting additional personal information. By submitting a rights request, you authorize us to collect, use, process, and store your personal data as described in this Privacy Policy. We will receive and analyze all requests. If your request is denied, we will provide a proper justification for the refusal. The processing of the requests will be done as quickly as possible, but within one month at the latest. The one-month timeframe begins upon confirmation of your identity or, if not requested by the company, upon receipt of your request. The requested information will then be provided to you. For complex or numerous requests, the company may extend the information provision period by an additional two months, provided you are notified beforehand. In addition, you can also lodge a complaint with the Portuguese Supervisory Authority, the Comissão Nacional de Proteção de Dados (CNPD). Please note that our Demo Tools provide a test experience and there is no automated decision in these processes. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-11.-policy-changes) 11\. POLICY CHANGES ---------------------------------------------------------------------------------------------------------------------------------------------------------- This policy may be occasionally amended to the extent permitted by the laws of the UAE, Singapore, and the EU, as well as internationally recognized standards for personal data protection. All amendments to the Privacy Policy will be reflected in the present website, indicating the date, when the amendment has come into effect. It is strongly recommended to check this page often, referring to the date of the last modification listed at the bottom. If You object to any of the changes to the Policy, You must cease using our Demo Tools. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-12.-contact-us) 12\. CONTACT US -------------------------------------------------------------------------------------------------------------------------------------------------- All queries regarding the provisions of the Policy may be sent to us by one of the following means: OZ FORENSICS SOFTWARE TRADING LLC Office 384, Saih Shuaib Bldg 2 area, DIC, Dubai, UAE You can directly contact our Data Protection Officer (DPO), who is responsible for Oz Forensics Privacy Program, by sending an email to: [\[email protected\]envelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#9eeeecf7e8fffde7def1e4f8f1ecfbf0edf7fdedb0fdf1f3) [PreviousWebsite Privacy Policychevron-left](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy) [NextPrivacy Policy: Biometry and Livenesschevron-right](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-biometry-and-liveness) Last updated 6 months ago Was this helpful? * [1\. INTRODUCTION](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-1.-introduction) * [2\. BASIC DEFINITIONS](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-2.-basic-definitions) * [3\. TYPES OF DATA COLLECTED](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-3.-types-of-data-collected) * [3\. USE SCENARIOS AND HOW THE OWNER COLLECTS, STORES AND PROCESSES YOUR PERSONAL DATA](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-3.-use-scenarios-and-how-the-owner-collects-stores-and-processes-your-personal-data) * [4.1. If you are using Demo App](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-4.1.-if-you-are-using-demo-app) * [4.2. If you are using Web Demo](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-4.2.-if-you-are-using-web-demo) * [4.3. Final considerations](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-4.3.-final-considerations) * [5\. DATA SHARING](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-5.-data-sharing) * [6\. DEVICE PERMISSIONS FOR PERSONAL DATA ACCESS](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-6.-device-permissions-for-personal-data-access) * [7\. SYSTEM LOGS AND MAINTENANCE](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-7.-system-logs-and-maintenance) * [8\. MEASURES IMPLEMENTED FOR DATA PROTECTION PURPOSES](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-8.-measures-implemented-for-data-protection-purposes) * [9\. OUR DEMO TOOLS DO NOT SUPPORT “DO NOT TRACK” REQUESTS](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-9.-our-demo-tools-do-not-support-do-not-track-requests) * [10\. YOUR RIGHTS](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-10.-your-rights) * [11\. POLICY CHANGES](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-11.-policy-changes) * [12\. CONTACT US](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo#id-12.-contact-us) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Interactions with the Oz API Server | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/interactions-with-the-oz-api-server#retrofit-api) Retrofit API -------------------------------------------------------------------------------------------------------------------------------------------------------- SDK contains IOzForensicsAPI interface describing APO net calls that can be used to create a Retrofit instance. This interface uses a gson-converter and operates classes from the `com.ozforensics.liveness.sdk.api.model` pack. Apart from this, the interface specifies a static method for creating a default Retrofit instance (without logging, interceptors and with 15-second timeouts). This instance will look for the server at the specified address: Kotlin Java Copy val apiService = OzForensicsAPI.create(BASE_URL) Copy OzForensicsAPI apiService = OzForensicsAPI.Factory.create(BASE_URL); [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/interactions-with-the-oz-api-server#ozforensicsservice-class) OzForensicsService Class -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SDK includes the `OzForensicsService` class that uses a Retrofit instance from `OzForensicsAPI.create()`. This class wraps in net calls from the Retrofit interface and checks the presence of a token. When an auth request is performed, the token is stored automatically for internal goals. Also, the required metadata is added where necessary when performing the net requests (creating a folder, uploading media data to be analyzed). The method calls of this class are asynchronous (the `StatusListener<>` interface is used). You can obtain an instance of this class as follows: Kotlin Java Copy val service = OzForensicsService(BASE_URL, ACCESS_TOKEN) Copy OzForensicsService service = OzForensicsService(BASE_URL, ACCESS_TOKEN); If the `TOKEN` parameter value is set to `null`, authorization is required before performing any API call (except auth): Kotlin Java Copy service.auth(EMAIL, PASSWORD, listener) Copy service.auth(EMAIL, PASSWORD, listener); After a successful request, `onSuccessCallback` is performed so that the access token can be transferred with `AuthResponse`. [PreviousAndroidchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android) [NextUploading and Analyzing Mediachevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/uploading-and-analyzing-media) Last updated 3 years ago Was this helpful? * [Retrofit API](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/interactions-with-the-oz-api-server#retrofit-api) * [OzForensicsService Class](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/android/interactions-with-the-oz-api-server#ozforensicsservice-class) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Analysis report | Oz Knowledge To view a report based on the analysis results, configure the required filter by the report period, then click the **Make report** button. The system creates the report in the **XLS** format and makes your browser download it. **Please note**: the only filter applicable to this report is based on dates. If you require detailed order statistics, such as filtering only Liveness analyses or only DECLINED ones, consider one of the following options: * For overall information: create a chart of the required [type](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/web-ui/analysis-report#types-of-charts) . * For detailed information with order numbers: utilize [**Filters**](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-order#filters) in the **Orders** tab. * Alternatively, filter the generated XLS report using Excel tools. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FFCbkDhC79kemwwIjWOnU%252Fimage.png%3Falt%3Dmedia%26token%3D164421b9-5807-44b6-9403-73374599f9e8&width=768&dpr=3&quality=100&sign=fff5d5a7&sv=2) Report example **Name of the row** **Description** Report for the period A period of time of statistics, by default, it is the current week from Monday to Sunday (can be changed in **Filter**). Orders per period The number of orders created during this period. No analyses applied The number of orders with no analyses performed. Processing The number of orders with analyses that are being performed during the report creation. Failed The number of orders where one or more analyses have been finished with some kind of error. Declined The number of orders where one or more analyses have been finished with the DECLINED status (an attack spotted, the images haven't matched during the biometry check, etc.). Operator required The number of orders where the system was uncertain about the analysis result and requires an additional check from the human operator. Success The number of orders where every single analysis has been finished successfully. **Name of the column** **Description** Date / time The date and time when the order has been created. Consolidated folder status The overall order (folder) status. Video count The number of videos in this order. Image count The number of images in this order. Analyses What analyses have been applied to the media in this order. Reason of rejection What analyses have been finished with the FAILED or DECLINED [status](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#sostoyanie-zayavki-folder.resolution_status-1) . Folder The folder (order) ID. IIN A client ID if it has been passed in the folder (order) [metadata](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/metadata) (the `client_iin` field). [PreviousWeb UIchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/web-ui) [NextOz Modules Installationchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation) Last updated 28 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Oz Demo Kit | Oz Knowledge To test Oz Forensics Mobile SDK, use this demo kit. With it, you can check how accurate it is in case of face recognizing and liveness detection. Contact us to get your credentials and let’s begin. To start working with Oz Forensics application, download it for your OS. The application is available for iOS and Android. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit#h.ttr4q3ym9svv) Installation #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit#h.s60c3upr0xde) iOS For iOS, you’ll need the TestFlight application. Download it from App Store: [TestFlightarrow-up-right](https://www.google.com/url?q=https://apps.apple.com/us/app/testflight/id899247664&sa=D&source=editors&ust=1649233840407587&usg=AOvVaw20zSgI3cxK6mwb_9lRc-_k) . When download completes, get Oz Forensics iOS demo application here: [iOS Demo Apparrow-up-right](https://www.google.com/url?q=https://testflight.apple.com/join/ETnAizs8&sa=D&source=editors&ust=1649233840407929&usg=AOvVaw2MGwWpEvJn6o8Mu58QIng8) . Tap the Oz Liveness icon. Upon the first login, you’ll be prompted to enter the credentials you’ve received from us. Check the **API Address** field – it should contain the following record: “https://sandbox.ohio.ozforensics.com/”. Once entered, tap the **LOGIN** button. You’ll be redirected to the **Scenarios** screen. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit#h.41o2fx7rypao) Android For Android, download the latest version of the application here: [Android Demo Apparrow-up-right](https://play.google.com/store/apps/details?id=com.ozforensics.liveness.demo) . Make sure you don’t have the previous version installed. You also might need to enable installation of apps from unknown sources. Once downloaded, tap the package to process it and complete the installation. Launch the app and you’ll see the **Scenarios** screen. Tap the **Profile** icon in the top-right corner. In the new screen, enter your credentials. Check the API Address field – it should contain the following record: “https://api.sandbox.ohio.ozforensics.com”. After you log in, you’ll get back to the **Scenarios** screen. For both systems, if you entered wrong credentials and need to change the user, hit the **Profile** icon on the top right. You’ll see your username and API server address. Tap **Change User** (iOS) / **LOGOUT** (Android) and repeat the login process with the correct credentials. In your profile, you also can: * Switch to another documents check method * Choose between server-based and on-device analyzes (below, we’ll describe the difference) * Check the current version of the application and SDK ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit#h.yxn2b5fp07gw) How to Work with Oz Demo App Within the app, you can follow one of the three scenarios. * Biometric check: a client makes a selfie, and the system compares their selfie with images from a database. This scenario is for transaction confirmations, self check-ins, access management, etc. * Liveness: a client takes a short selfie video to confirm they are a living person acting in good faith. This is a spoofing-protection scenario. Below, we’ll explain how to manage each of the scenarios. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit#h.s1pic4gsplv5) Biometric Check Please note: for testing purposes, you choose a photo to compare selfie with from your phone library or take it with your camera. Later on, at the production stage, you’ll be able to create either blacklist or whitelist which will be used as a database. In the **Biometric check** section, tap **Select Photo** to specify an image for comparison. You can either take a photo or select it from your gallery. Confirm the choice. The photo will appear on your screen. Tap **Do Check** and follow the instructions. If the faces match, you’ll get the “Authentication successful” message. If they don’t match, the warning message will appear. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit#h.in8ymo6v3c0g) Liveness In the Liveness section, you need to pick one of the gestures that will be used to confirm that you’re a real living person. They are: * One shot * Selfie * Scan * Blink * Smile * Tilt up * Slope down * Turn your head left * Turn your head right * Combo – a combination of several gestures from above If the Liveness check is successful, you’ll get the “Authentication successful” message. If not, the warning message will appear. All photos and videos you take can be found in the Web console\*. You can find documentation on the console usage here: [Oz Web UI User Guide](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui) . \*There is also a way to perform analyzes locally on your device. To enable this option, proceed to the **Profile** and change the **Analysis type** in the **Settings** section from **Server based** to **On device**. In this case, all checks will be performed on your device, no data is sent to the server. This is a faster and safer way of analyzing. However, the server check is more accurate and the information is stored for further needs. Should you have any questions, please contact us. [PreviousUser Guideschevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides) [NextWeb UIchevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/web-ui) Last updated 1 year ago Was this helpful? * [Installation](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit#h.ttr4q3ym9svv) * [How to Work with Oz Demo App](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides/oz-demo-kit#h.yxn2b5fp07gw) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Performance and Scalability Guide | Oz Knowledge The Oz system consists of many interconnected components. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F7aapTicJVkTvyH32fwLR%252Fcomponents-public.png%3Falt%3Dmedia%26token%3Dec326f18-fc9a-4f6b-8fb9-12aa4e2bb455&width=768&dpr=3&quality=100&sign=70a53101&sv=2) Oz components Most of the components require scaling to ensure functionality during an increase in APM. The scheme below represents how the system processes an analysis using supportive software. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F2sgKezMYtkvdnrtCnluf%252Fanalysis%2520flow%2520scheme.png%3Falt%3Dmedia%26token%3Db5d1d6bc-bd70-41f4-aab6-242c3840d4b1&width=768&dpr=3&quality=100&sign=e9181ec0&sv=2) Rough representation of analysis flow This guide explains how to scale components and improve performance for both Docker and Kubernetes deployments. circle-info For K8s deployments, use HPA. In the chart values, you'll find the `use_hpa` parameter for each component that supports HPA. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#scaling-oz-bio-and-celery-tfss) Scaling Oz BIO and Celery-TFSS ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- BIO is the most resource-consuming component as it performs media analysis processing. circle-info * The BIO component may take up to 10 minutes to start (applicable for versions <1.2). * Scaling BIO nodes might be challenging during a rapid increase in APM. * For Docker installations, plan the required number of components to handle peak loads. * For Kubernetes installations, schedule the creation of additional BIO pods to manage demand using `cronjobHpaUpdater` in `values.yaml`. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#node-requirements) Node requirements * CPU must support `avx`, `avx2`, `fma`, `sse4.1`, and `sse4.2`. * If CPU support `avx512f` instructions: to slightly increase performance, you can use a specific BIO image. * We recommend using Intel CPU. AMD CPUs are also supported, but require additional configuration. * For better performance, each BIO should reside on a dedicated node with reserved resources. circle-exclamation APM expectations may vary, depending on speed of CPUs (GHz). Recommended: 2.5+ GHz. For better performance: 3.0+ GHz. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#scaling) Scaling Each BIO instance can handle an unlimited number of simultaneous requests. However, as the number increases, the execution time for each request grows. The assignment of analyses to BIO instances is managed by `celery-tfss` workers. Each `celery-tfss` instance is configured to handle 2 analyses simultaneously, as this provides optimal performance and analysis time. For Kubernetes installations, this behavior can be adjusted using the concurrency parameter in values.yaml. In the default configuration, the number of `celery-tfss` instances should match the number of BIOs. The required number of BIOs can be calculated using the formula below, based on the average analysis time and the expected number of analyses: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FrzteLVwPOoqwfTOTqkcp%252Fbio%2520formula.png%3Falt%3Dmedia%26token%3D3f753089-9211-47d5-9610-5c941f58d7f8&width=768&dpr=3&quality=100&sign=8b8d28ad&sv=2) Here, * N(BIO) is the required number of BIO nodes * n(APM) is the expected number of APM, * t(analysis) is the measured average duration of a single analysis (3 seconds by default), * C is concurrency (2 by default). For a large number of requests involving .zip archives (e.g., if you use Web SDK), you might require additional scaling of the `celery-preview_convert` service. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#database) Database --------------------------------------------------------------------------------------------------------------------------------------- Oz API is not intended to be a long-term analysis storage system, so you might encounter longer API response time after 10-30 million folders stored in database (depending on the database performance). Thus, we recommend archiving or deleting data from API after one year of storing it. For the self-managed database, you'll require the following resources: **API** * CPU: 4 cores (up to 8), * RAM: 8 GB (up to 16), * SSD storage. **1:N** * CPU: 4 cores (up to 8), * RAM: equal to the database size, * SSD storage. chevron-rightPostgreSQL database parameters[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#postgresql-database-parameters) * `idle_in_transaction_session_timeout`: 60s, * `max_connections`: 2000 (may vary depending on number of API calls), * `shared_buffers`: 2 GB (amount of RAM divided by 2), * `effective_cache_size`: 6 GB (RAM – 2 GB), * `maintenance_work_mem`: 512 MB, * `checkpoint_completion_target`: 0.9, * `wal_buffers`: 16 MB, * `default_statistics_target`: 100, * `random_page_cost`: 1.1, * `effective_io_concurrency`: 200, * `work_mem`: 16 MB, * `min_wal_size`: 1 GB, * `max_wal_size`: 4 GB, * `max_worker_processes`: 4 (equal to the number of CPUs), * `max_parallel_workers_per_gather`: 2 (number of CPUs divided by 2), * `max_parallel_workers`: 4 (equal to the number of CPUs), * `max_parallel_maintenance_workers`: 2 (number of CPUs divided by 2), * If database is Dockered, set `shm_size: '1gb'`. circle-exclamation * 1:N database requires the Pgvector extension. * Do not create indexes for 1:N database as they will reduce accuracy. * For 1:N, parallelism is crucial. * Scale up RAM with the growth of your database. * If the number of active connections allows you to stay within the `shared_buffers` limit, you can increase `work_mem`. To increase API performance, consider using this list of indexes: chevron-rightGateway indexes[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#gateway-indexes) For high-load environments, achieving the best performance requires precise database tuning. Please contact our support for assistance. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#gesture-performance) Gesture Performance ------------------------------------------------------------------------------------------------------------------------------------------------------------- The duration of the analysis depends on the gesture used for Liveness. [Passive Liveness](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#passive-liveness) gestures are generally analyzed faster, while [Active Liveness](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#active-liveness) gestures provide higher accuracy but take more time. The longer the gesture takes, the longer the analysis will take. This table represents analysis duration for different gestures. **Gesture** **Average analysis time** **50th percentile** \[video\_selfie\_blank\] 5.491 4.984 \[video\_selfie\_down\] 11.051 8.052 \[video\_selfie\_eyes\] 9.953 7.399 \[video\_selfie\_high\] 10.937 8.112 \[video\_selfie\_left\] 9.713 7.558 \[video\_selfie\_right\] 9.95 7.446 \[video\_selfie\_scan\] 9.425 7.29 \[video\_selfie\_smile\] 10.25 7.621 [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#api-methods-performance) API Methods Performance --------------------------------------------------------------------------------------------------------------------------------------------------------------------- API performance mainly depends on [database](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#database) and [storage](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/deployment-architecture#requirements) performance. Most of the available [API methodsarrow-up-right](https://apidoc.ozforensics.com/) use a database to return results. Thus, to maintain low API response time, we recommend using a high-performance database. Additionally, to reduce the number of requests for analysis results via the `/api/folders`methods, please consider [webhook callback usage](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/using-a-webhook-to-get-results) . circle-info If you use S3, check its performance as well. Run `POST api/folders` with a single media sized ~3 MB. After that, check the upload time in logs, “Files saved to storage for X seconds”. X should be 0.5 or less; if it is 2 or more, some API operations may lead to timeouts. Below is a list of recommended and non-recommended practices for using Oz API methods. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#authorize) `/authorize` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#do) Do * Refresh expired token when possible. * Monitor token expiration. * Use service token only in when appropriate. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#avoid) Avoid * Making requests with an expired token. * Creating a new token instead of refreshing an expiring one. * Requesting a new token on each API call. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#api-companies) `/api/companies` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#do-1) Do * Create a new named company for your deployment. **Avoid** * Using the default `system_company`. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#api-users) `/api/users` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#do-2) Do * Create named accounts for users. * Create a separate named service account for each business process. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#avoid-1) Avoid * Sharing accounts between users. * Creating a new user for each analysis request. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#api-healthcheck) `/api/healthcheck` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#avoid-2) Avoid * Using healthcheck too frequently as it may overwhelm system with internal checks. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#get-api-folders) GET `/api/folders` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#do-3) Do * Always use the time-limiting query parameters: `time.created.min` and `time.created.max`. * Use the `total_omit=true` query parameter. * Use the `folder_id` query parameter when you know the folder ID. * Use the `technical_meta_data` query parameter in case you have `meta_data` set. * Use the `limit` query parameter when possible. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#avoid-3) Avoid * Using the `with_analyzes=true` query parameter when it is unnecessary, in requests involving long time periods or unspecified durations. * Using the `technical_meta_data` query parameter with unspecified additional parameters or time period. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#post-api-folders) POST `/api/folders` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#avoid-4) Avoid * Placing too many data in the payload `meta_data`. [PreviousInstallation in Kuberneteschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes) [NextPublishing API Methods in the Internet: Security Recommendationschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/publishing-api-methods-in-the-internet-security-recommendations) Last updated 15 days ago Was this helpful? * [Scaling Oz BIO and Celery-TFSS](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#scaling-oz-bio-and-celery-tfss) * [Node requirements](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#node-requirements) * [Scaling](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#scaling) * [Database](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#database) * [Gesture Performance](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#gesture-performance) * [API Methods Performance](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#api-methods-performance) * [/authorize](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#authorize) * [/api/companies](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#api-companies) * [/api/users](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#api-users) * [/api/healthcheck](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#api-healthcheck) * [GET /api/folders](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#get-api-folders) * [POST /api/folders](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide#post-api-folders) Was this helpful? sun-brightdesktopmoon Copy CREATE INDEX CONCURRENTLY gw_analyse_abstract_company_id_idx ON public.gw_analyse_abstract USING btree (company_id); CREATE INDEX CONCURRENTLY gw_analyse_abstract_folder_id ON public.gw_analyse_abstract USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_analyse_abstract_time_updated_state_idx ON public.gw_analyse_abstract USING btree (time_updated) WHERE (state = 'PROCESSING'::analyse_state); CREATE INDEX CONCURRENTLY idx_gw_analyse_abstract_state_time_updated ON public.gw_analyse_abstract USING btree (state, time_updated); CREATE INDEX CONCURRENTLY gw_analyse_collection_collection_id_idx ON public.gw_analyse_collection USING btree (collection_id); CREATE INDEX CONCURRENTLY gw_analyse_collection_person_media_association_person_id_idx ON public.gw_analyse_collection_person_media_association USING btree (person_id); CREATE INDEX CONCURRENTLY gw_analyse_cpma_media_association_id_idx ON public.gw_analyse_collection_person_media_association USING btree (media_association_id); CREATE INDEX CONCURRENTLY gw_analyse_result_group_image_analyse_id_idx ON public.gw_analyse_result_group_image USING btree (analyse_id); CREATE INDEX CONCURRENTLY gw_analyse_result_group_image_image_id_idx ON public.gw_analyse_result_group_image USING btree (image_id); CREATE INDEX CONCURRENTLY gw_analyse_result_image_media_association_id_idx ON public.gw_analyse_result_image USING btree (media_association_id); CREATE INDEX CONCURRENTLY gw_analyse_source_media_association_analyse_id_idx ON public.gw_analyse_source_media_association USING btree (analyse_id); CREATE INDEX CONCURRENTLY gw_analyse_source_media_association_source_image_id_idx ON public.gw_analyse_source_media_association USING btree (source_image_id); CREATE INDEX CONCURRENTLY gw_analyse_source_media_association_source_shots_set_id_idx ON public.gw_analyse_source_media_association USING btree (source_shots_set_id); CREATE INDEX CONCURRENTLY gw_analyse_source_media_association_source_video_id_idx ON public.gw_analyse_source_media_association USING btree (source_video_id); CREATE INDEX CONCURRENTLY gw_collection_company_id_idx ON public.gw_collection USING btree (company_id); CREATE INDEX CONCURRENTLY gw_collection_creator_id_idx ON public.gw_collection USING btree (creator_id); CREATE INDEX CONCURRENTLY gw_collection_person_collection_id_idx ON public.gw_collection_person USING btree (collection_id); CREATE INDEX CONCURRENTLY gw_collection_person_image_person_id_idx ON public.gw_collection_person_image USING btree (person_id); CREATE INDEX CONCURRENTLY gw_folder_company_id_idx ON public.gw_folder USING btree (company_id) WHERE (NOT is_archive); CREATE INDEX CONCURRENTLY gw_folder_event_session_id_idx ON public.gw_folder USING btree (((meta_data ->> 'event_session_id'::text))) WHERE (NOT is_archive); CREATE INDEX CONCURRENTLY gw_folder_resolution_author_id_idx ON public.gw_folder USING btree (resolution_author_id); CREATE INDEX CONCURRENTLY gw_folder_resolution_comment_fts_idx ON public.gw_folder USING gin (to_tsvector('english'::regconfig, (resolution_comment)::text)); CREATE INDEX CONCURRENTLY gw_folder_time_created_folder_id_idx ON public.gw_folder USING btree (time_created DESC, folder_id DESC); CREATE INDEX CONCURRENTLY gw_folder_time_created_folder_id_nonarchive_idx ON public.gw_folder USING btree (time_created DESC, folder_id DESC) WHERE (is_archive = false); CREATE INDEX CONCURRENTLY gw_folder_time_created_idx ON public.gw_folder USING btree (time_created DESC); CREATE INDEX CONCURRENTLY gw_folder_time_created_nonarchive_idx ON public.gw_folder USING btree (time_created DESC) WHERE (is_archive = false); CREATE INDEX CONCURRENTLY gw_folder_user_id_idx ON public.gw_folder USING btree (user_id); CREATE INDEX CONCURRENTLY idx_gw_folder_transaction_id ON public.gw_folder USING btree (company_id, ((meta_data ->> 'transaction_id'::text))) WHERE (NOT is_archive); CREATE INDEX CONCURRENTLY idx_gw_folder_user_id_time_created ON public.gw_folder USING btree (user_id, time_created); CREATE INDEX CONCURRENTLY gw_folder_image_folder_id_idx ON public.gw_folder_image USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_folder_report_author_id_idx ON public.gw_folder_report USING btree (author_id); CREATE INDEX CONCURRENTLY gw_folder_report_folder_id_idx ON public.gw_folder_report USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_folder_report_report_template_id_idx ON public.gw_folder_report USING btree (report_template_id); CREATE INDEX CONCURRENTLY idx_gw_folder_shots_set_folder_id ON public.gw_folder_shots_set USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_folder_video_folder_id_idx ON public.gw_folder_video USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_logging_event_record_session_id_idx ON public.gw_logging_event_record USING btree (session_id); CREATE INDEX CONCURRENTLY gw_logging_event_record_time_created_idx ON public.gw_logging_event_record USING btree (time_created); CREATE INDEX CONCURRENTLY gw_logging_event_record_timemark_idx ON public.gw_logging_event_record USING btree (timemark); CREATE INDEX CONCURRENTLY gw_logging_event_session_time_created_idx ON public.gw_logging_event_session USING btree (time_created); CREATE INDEX CONCURRENTLY gw_logging_event_session_user_id_idx ON public.gw_logging_event_session USING btree (user_id); CREATE INDEX CONCURRENTLY gw_logging_event_session_time_updated_idx ON gw_logging_event_session(time_updated); CREATE INDEX CONCURRENTLY gw_report_template_company_id_idx ON public.gw_report_template USING btree (company_id); CREATE INDEX CONCURRENTLY gw_report_template_name_company_id_idx ON public.gw_report_template USING btree (name, company_id); CREATE INDEX CONCURRENTLY gw_report_template_attachment_filename_report_template_id_idx ON public.gw_report_template_attachment USING btree (filename, report_template_id); CREATE INDEX CONCURRENTLY gw_report_template_attachment_report_template_id_idx ON public.gw_report_template_attachment USING btree (report_template_id); CREATE INDEX CONCURRENTLY gw_role_abstract_user_company_id_idx ON public.gw_role_abstract_user USING btree (company_id); CREATE INDEX CONCURRENTLY gw_role_email_restore_code_user_id_idx ON public.gw_role_email_restore_code USING btree (user_id); CREATE INDEX CONCURRENTLY gw_role_session_old_access_token_idx ON public.gw_role_session USING btree (old_access_token); CREATE INDEX CONCURRENTLY gw_role_session_user_id_idx ON public.gw_role_session USING btree (user_id); CREATE INDEX CONCURRENTLY gw_role_user_photo_user_id_idx ON public.gw_role_user_photo USING btree (user_id); CREATE INDEX CONCURRENTLY gw_shots_set_frame_shots_set_id_idx ON public.gw_shots_set_frame USING btree (shots_set_id); CREATE INDEX CONCURRENTLY gw_utils_audit_actor_id_idx ON public.gw_utils_audit USING btree (actor_id); CREATE INDEX CONCURRENTLY gw_utils_media_company_id_idx ON public.gw_utils_media USING btree (company_id); sun-brightdesktopmoon --- # Oz API Configuration | Oz Knowledge The configuration settings are contained in the`config.py` file. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#initial-configuration) **Initial Configuration** ------------------------------------------------------------------------------------------------------------------------------------------------- These parameters are mandatory. Please note: if you require the Instant API mode (with no data saved anywhere), set `OZ_APP_COMPONENTS=stateless`. Otherwise, to save data for orders and analyses, set `OZ_APP_COMPONENTS=auth,stateful,oz_collections`, where: * `auth` is an authentication module, * `stateful` is a module for full API, * `oz_collections` is a module for the blacklist analysis (remove if you don't use it). Copy # application components list OZ_APP_COMPONENTS=auth,stateful,oz_collections # enable local storage support OZ_LOCAL_STORAGE_SUPPORT_ENABLE=false # tfss service host OZ_SERVICE_TFSS_HOST=http://xxx.xxx.xxx.xxx:xxxx # allowed hosts APP_ALLOWED_HOSTS=example-host1.com,example-host2.com # secret key OZ_API_SECRET_KEY=long_secret_key [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#postgres-connection) **Postgres Connection** --------------------------------------------------------------------------------------------------------------------------------------------- This is needed only if you use the full API version. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#path-to-media-files) Path to Media Files ----------------------------------------------------------------------------------------------------------------------------------------- All incoming media files are saved in the local directory mounted to one of possible endpoints depending of the installation method: * host server or Docker container: `/opt/gateway/static` * in case of standalone installer: `/var/lib/docker/volumes/api_oz-api-static-vol/_data` * any path specified via configuration In most of the integration cases, the media files can be accessed in web using the direct links to randomly generated filenames. To access the media, you need to specify in the configuration file their external host name or IP address, port, and connection protocol. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#connection-to-oz-bio-liveness) Connection to Oz Bio / Liveness --------------------------------------------------------------------------------------------------------------------------------------------------------------- [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#timing-and-limits) Timing and Limits ------------------------------------------------------------------------------------------------------------------------------------- [PreviousServer Configuration via Environment Variableschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/server-configuration-via-environment-variables) [NextUser Guidechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide) Last updated 9 months ago Was this helpful? * [Initial Configuration](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#initial-configuration) * [Postgres Connection](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#postgres-connection) * [Path to Media Files](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#path-to-media-files) * [Connection to Oz Bio / Liveness](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#connection-to-oz-bio-liveness) * [Timing and Limits](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/configuration#timing-and-limits) Was this helpful? sun-brightdesktopmoon Copy DB_USER = 'user name' DB_HOST = 'Postgres server address' DB_PASS = 'user password' DB_NAME = 'database name' Copy PORT = 443 SCHEME = 'https' HOST = 'api.globalbank.com' Copy OZ_SERVICE_TFSS_HOST = 'http://bio-server-name:8501/v1/' Copy # amount of retries to perform analyses to Oz Bio OZ_CELERY_RETRY_MAX_COUNT = 7 # delay between tries OZ_CELERY_RETRY_STEP = 30 # maximum wait time of one analyse OZ_ANALYSE_PROCESSING_EXPIRE_TIMEOUT = 15 * 60 # 15 minutes # maximum wait time of analyse from API OZ_ANALYSE_DELIVERY_EXPIRE_TIMEOUT = 60 * 60 # 1 hour # frequency for check analyse expiration OZ_ANALYSE_EXPIRE_BEAT_PERIOD = 1 * 60 # every minute # maximum amount of attached media OZ_ATTACHMENT_MAX_COUNT = 10 # maximum size of one media file OZ_ATTACHMENT_MAX_SIZE = 10 * 1024 * 1024 # 10Mb # amount of seconds until access token expiration OZ_SESSION_TTL = 60 * 15 # 15 minutes # amount of seconds until service access token expiration OZ_SESSION_LONGLIVE_TTL = 60 * 60 * 24 * 365 * 5 # 5 years # maximum size of thumbnail in bytes OZ_IMAGE_SIZE_THUMBNAIL = 300 # maximum duration of video file OZ_VIDEO_DURATION_MAX = 30 sun-brightdesktopmoon --- # Configuration File Settings | Oz Knowledge This part covers the containing of the `/core/app_config.json` file. * `use_for_liveness` – the option is used when bank managers are taking clients' videos. If the option is set to `true`, mobile devices use the back camera by default, and on desktop, flip and oval circling are off. * `preinit` – this optional parameter switches on the preliminary loading of scripts and face detection initialization. This is needed to reduce the `plugin` loading time. The default value is `off` that means all the scripts are loaded after calling `OzLiveness.open()`. The `script` value means that the scripts will be loaded before the plugin launches. The `full` value enables preliminary loading of scripts and face detection initialization. * `architecture` – this optional parameter is used to choose the architecture for Web SDK. The default value is `normal`. * `normal` is used for the full Oz API version; * `lite` is used for [Instant API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode) ; * `capture` is used for the [mode](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/launching-the-plugin/capturing-video-and-description-of-the-on_capture_complete-callback) that aims to work directly with client backend. In this mode, Oz Liveness Web Plugin can be distributed via static files only (without the adapter part; implemented in 0.7.4); * `api_url` – Oz API server address, a text parameter; * `api_token` – Oz API access token, a text parameter; * `api_use_token` – a parameter to specify the source of the Oz API access token for the system. Possible values = `config`, `client`. * If the parameter value is `client`, then an Oz API access token is expected to be derived from the JS plug-in; * If you specify `config` in this parameter, a token will be retrieved from the api\_token parameter of the Oz Liveness Web Adapter configuration file. * `video_actions_list` – block of video file tags used in the system, a text array. [Current tag listarrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags#tags-for-video-files) . * `photo_actions_list` – block of photo file tags used in the system, a text array. [Current tag listarrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/media-tags#tags-for-photo-files) . * `actions_default_importance` – this parameter specifies whether override with an actions array from a web plug-in is allowed at launching an analysis. Possible values = `true`, `false`; * If `true`, the Adapter will use an actions array from the configuration file. * If `false`, the Adapter will use an actions array forwarded from your browser with the use of the `open(options)` method. * `actions_default` – the actions array. Options include: * `video_count` – the number of transmitted video files, a numeric parameter; * `photo_front` – whether there is a front-side page in the document. Possible values = `true`, `false;` * `photo_back` – whether there is a back-side page in the document. Possible values = `true`, `false`. * `analyses` – a block for configuring the launch of analyses. Options include: * `quality` – launch of Oz Liveness analysis. Possible values = `true`, `false`; * `biometry` – launch of Oz Biometry analysis. Possible values = `true`, `false`; * `documents` – launch of Oz Text analysis. Possible values = `true`, `false`; * `collection_ids` (since 1.4.0) – an array of the identifiers of collections for the Black List analysis. * `extract_best_shot` – a parameter that specifies if a direct link to the best shot (bestshot) extracted from the video should be appended to the analysis result. Possible values = `true`, `false`. If `true`, the response will contain a link to the extracted image in`output_images` (`results_media`); * `result_mode` – a parameter that specifies the contents of the server response with verification results. Possible values: * `safe` – only the state of analyses is returned (completed or not yet); * `status` – results of completed analyses are returned; * `folder` – same as status but with folder identifier added; * `full` (deprecated) – the detailed response possibly containing sensitive data. * `result_codes`– a block of response codes with annotations. * `delete_old_sessions`: `true`, `false`– whether you want to delete old sessions * `delete_old_sessions_offset_minutes`: `***`– old sessions deletion time offset (in minutes) * `video_required_actions_list`– the array of required actions * `video_file_format` – optional; here you can choose the video file format. This video file is passed to the `api`. Possible values: `zip` (recommended) and `mov` (less secure). If you need to retrieve your captured video in the MP4 format, please find the instructions [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/launching-the-plugin/capturing-video-and-description-of-the-on_capture_complete-callback#please-note) . * `debug` (since 1.1.0) – if `true`, enables access to the /debug.php page, which contains information about the current configuration and the current license. * `load_3d_mask` (since 1.2.1) – if `true`, loads the model to process the video taken with the 3D mask functionality. The default value is `false` which means that the model is not used, and the 3D mask is unavailable (the `enable_3d_mask` parameter is being ignored). * `enable_3d_mask` (since 1.2.1) – enables the 3D mask as the default face capture behavior. This parameter works only if `load_3d_mask` is set to `true`; the default value is `false`. * `master_license_signature` (since 1.3.1) – the parameter for the master license signature; the default value is `null`. * `results_polling_interval` (since 1.4.0) – the interval for polling for the analyses’ results in ms; the default value is 1000. * `get_user_media_timeout` (since 1.5.0) – it defines camera access timeout in sec; after this timeout it displays a hint on how to solve the problem; `default_default` for all browsers and `android_facebook` for Facebook * `disable_adapter_errors_on_screen` (since 1.5.0) – if `true`, disables the display of errors in modal windows, allowing you to view them solely using the `on_error` callback. The default value is `False`. * `auth` (since 1.7.14) – defines whether and what authorization is used: * `true` (default) – authorization is required and is based on the generated key; * `user:pass` – authorization is required and is based on the user login and password; * `false` – no authorization needed. * `use_wasm_container` (since 1.9.2) – if `true`, enables functionality of [OzCapsula Data Container](https://doc.ozforensics.com/oz-knowledge/general/readme/proprietary-format-ozcapsula-data-container) . The default value is `False`. * `api_use_session_token` (since 1.9.2) – defines how the session token is obtained and transmitted. * `client` (default) – you obtain the token via the API call as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/ozcapsula-data-container#obtaining-a-session-token) . * `api` – the session token is being obtained automatically. [PreviousInstallation and Licensingchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/installation-and-licensing) [NextConfiguration Using Environment Variableschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/web-adapter/configuration-using-environment-variables) Last updated 1 month ago Was this helpful? Was this helpful? sun-brightdesktopmoon Copy "video_required_actions_list": [\ "video_selfie_smile"\ ], Copy "get_user_media_timeout": { "default_default": 40, "android_facebook": 5 } sun-brightdesktopmoon --- # Cookie Policy | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-1.-introduction) **1\. INTRODUCTION** ---------------------------------------------------------------------------------------------------------------------- When you use our digital platforms, which may include our website, social networks and institutional landing pages, we may store cookies in your browser. Other third-party websites that you choose to access may do the same. This Cookies Policy explains what a cookie is, how you can manage your cookies and what types of cookies may be captured. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-2.-what-is-a-cookie-and-why-we-use-it) **2\. WHAT IS A COOKIE AND WHY WE USE IT?** ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Cookies are small pieces of text. They are provided by most websites and stored by your web browser on the computer, phone or other device you are using. Cookies have several important purposes, such as helping the site remember your preferences, understanding which areas are useful and which areas need improvement, and can serve you targeted advertisements or personalized content. Cookies are sometimes activated when pixels are placed on a website. Pixels are also called web beacons, clear gifs and tags, which allow websites to read and place cookies. Cookies do not normally have the function of identifying an individual, but this can happen when associated with other personal data. If this happens, all processing of this data will be carried out by OZ FORENSICS SOFTWARE TRADING LLC and its affiliated companies (hereinafter referred to as “Oz Forensics” or “Company”) in compliance with Privacy laws and other regulations applicable to the subject. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#first-party-cookies-and-third-party-cookies) **First-party cookies and third-party cookies** Cookies can be first-party or third-party. A first-party cookie is one you receive directly from Oz Forensics when you visit one of our digital platforms. A third-party cookie is one that you received from another party, such as Google or Facebook. We do not control what third parties do on other websites. However, we may work with certain third-party providers, such as Google or Facebook, to allow their cookies to work through our Site, so we can learn more about your experience on our site and better personalize our services for you. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#persistent-cookies-and-session-cookies) **Persistent cookies and session cookies** A persistent cookie is a cookie stored by the web browser on your device until it expires or you delete it. The expiration of a persistent cookie is determined by the cookie creator and may occur on a certain date or after session time has expired. This means that throughout the lifetime of the cookie, its information will be transmitted to the creator's server every time the user visits the website that it belongs to or another website set up to check that cookie (such as an advertisement placed on that website). For this reason, persistent cookies are also called "tracking cookies". A session cookie is temporarily created on your device for use by a website during your visit. This type of cookie may store information you enter and track your activity on the website. A session cookie is deleted after you leave the website or when your browser is closed. A good example of a session cookie is the shopping cart on an e-commerce website. The session cookie stores the items you add to your cart so they are not forgotten while you view products on other pages on the site. By using a session cookie, all items will be in the cart when you go to the checkout page. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-3.-how-to-manage-cookies) **3\. HOW TO MANAGE COOKIES?** ----------------------------------------------------------------------------------------------------------------------------------------- Most browsers allow you to choose whether to accept cookies and also to delete cookies that have already been set. The available options and the mechanisms used vary from browser to browser. These browser settings are typically found in the "options", "tools" or "preferences" menu. You can also consult the browser's "help" menu. For example: [Chromearrow-up-right](https://support.google.com/chrome/answer/95647#zippy=,allow-or-block-cookies) [Internet Explorerarrow-up-right](https://support.microsoft.com/en-us/windows/delete-and-manage-cookies-168dab11-0753-043d-7c16-ede5947fc64d) [Mozillaarrow-up-right](https://support.mozilla.org/en-US/kb/cookies-information-websites-store-on-your-computer#w_cookie-settings) [Safariarrow-up-right](https://support.apple.com/en-ie/guide/safari/sfri11471/mac) [Microsoft Edgearrow-up-right](https://support.microsoft.com/en-us/windows/microsoft-edge-browsing-data-and-privacy-bb8174ba-9d73-dcf2-9b4a-c582b4e640dd) [Operaarrow-up-right](https://help.opera.com/en/latest/web-preferences) There are tools available to clear all cookies left behind by websites you have visited. Generally, deleting cookies anonymizes the information associated with the pixel and the website will no longer receive any associated information. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-4.-what-types-of-cookies-do-we-collect) **4\. WHAT TYPES OF COOKIES DO WE COLLECT?** --------------------------------------------------------------------------------------------------------------------------------------------------------------------- We may use cookies, pixels, beacons, scripts and other similar technologies (collectively, “cookies”) to recognize your browser, operating system or device, learn more about interests and intentions, provide you with features and services, or for additional purposes, including: * Recognizing repeat visitors. * Keeping track of specified preferences such as language and country of origin. * Conducting research and diagnostics to improve our offerings. * Preventing fraudulent activity. * Improving security. * Delivering relevant content. * Reporting, measurement and analysis of our site’s performance. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#strictly-necessary-cookies) **Strictly necessary cookies:** These are cookies without which you would not be able to use the website. For example, strictly necessary cookies adjust transmitted website data to match your internet connection, take you to secure versions of the website, and help deliver services that you specifically request. If you set your browser to block these cookies, some parts of the site will not work. Strictly necessary cookies do not store any personal data. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#performance-cookies) **Performance cookies:** We use these cookies to count visits and traffic sources, to measure and improve site performance. They help us know which pages are the most and least popular, and see how visitors move around the site. Performance cookies do not store personal data. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#functional-cookies) **Functional cookies:** These cookies allow the website to remember choices you make and provide enhanced functionality and more personalized features. Depending on the context, functional cookies may store certain types of personal data as necessary to provide functionality. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#targeting-cookies) **Targeting Cookies:** Targeting cookies help us manage and serve our ads based on your activity on our digital platforms and other websites. This activity is known as interest-based advertising. Targeting cookies are primarily based on uniquely identifying your browser and internet device. Opting out of interest-based advertising does not mean that you will no longer see advertising online, but that the companies you have opted out of will no longer show you ads that have been tailored to your interests. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#social-media-cookies) **Social Media Cookies:** Social media cookies facilitate sharing on social networks, provide tools for you to connect with the website, and help us better understand both the website's target audience and the effectiveness of our social media outreach. These are third-party cookies. Your choices regarding these cookies are determined by the social media platforms on which you have an account. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-5.-update-to-this-cookie-policy) **5\. UPDATE TO THIS COOKIE POLICY** ------------------------------------------------------------------------------------------------------------------------------------------------------ We may change this cookie policy at any time. Any changes to this cookie policy will become effective when the revised cookie policy is available on or through the website. Such updates will be duly disclosed by Oz Forensics. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-6.-talk-to-us) **6\. TALK TO US** ------------------------------------------------------------------------------------------------------------------ We want to hear from you. Do not hesitate to contact us if you have any questions, comments or suggestions regarding this policy or the processing of your personal data. You will be able to do this by sending an email to our DPO: **[\[email protected\]](https://doc.ozforensics.com/cdn-cgi/l/email-protection)** or they can be forwarded to one of our offices: **OZ FORENSICS SOFTWARE TRADING LLC Office 384, Saih Shuaib Bldg 2 area, DIC, Dubai, UAE** [PreviousResponsible Disclosure Policychevron-left](https://doc.ozforensics.com/oz-knowledge/security/responsible-disclosure-policy) [NextWebsite Privacy Policychevron-right](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy) Last updated 7 months ago Was this helpful? * [1\. INTRODUCTION](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-1.-introduction) * [2\. WHAT IS A COOKIE AND WHY WE USE IT?](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-2.-what-is-a-cookie-and-why-we-use-it) * [First-party cookies and third-party cookies](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#first-party-cookies-and-third-party-cookies) * [Persistent cookies and session cookies](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#persistent-cookies-and-session-cookies) * [3\. HOW TO MANAGE COOKIES?](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-3.-how-to-manage-cookies) * [4\. WHAT TYPES OF COOKIES DO WE COLLECT?](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-4.-what-types-of-cookies-do-we-collect) * [Strictly necessary cookies:](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#strictly-necessary-cookies) * [Performance cookies:](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#performance-cookies) * [Functional cookies:](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#functional-cookies) * [Targeting Cookies:](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#targeting-cookies) * [Social Media Cookies:](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#social-media-cookies) * [5\. UPDATE TO THIS COOKIE POLICY](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-5.-update-to-this-cookie-policy) * [6\. TALK TO US](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy#id-6.-talk-to-us) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Website Privacy Policy | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-1.-introduction) **1\. INTRODUCTION** ------------------------------------------------------------------------------------------------------------------------------- This document outlines the privacy practices of OZ FORENSICS SOFTWARE TRADING LLC and its affiliated companies (hereinafter referred to as “Oz Forensics”, "Company," "we," "us," or "our"), a developer of facial biometric authentication and liveness check services. We are committed to protecting the privacy and personal data of individuals who interact with our digital platforms, physical facilities, and services, whether directly or through our clients. By accessing our website or using our services, you acknowledge and understand our data processing practices as described herein. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-2.-area-of-policy-application) **2\. AREA OF POLICY APPLICATION** ----------------------------------------------------------------------------------------------------------------------------------------------------------- This Website Privacy Policy is in effect regarding any information, including personal data in the meaning of the applicable law that Company and/or affiliated persons of Company may obtain regarding you in the process of the use of our websites. The policy determines the category of personal data collected by the Company, procedures and objectives of the use of data, as well as the conditions of granting access to such data. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-3.-information-collection) **3\. INFORMATION COLLECTION** --------------------------------------------------------------------------------------------------------------------------------------------------- We collect minimal data necessary to provide and enhance our services, including: * **Registration and Service Data**: Name, surname, email address, contact telephone number, company affiliation, professional information, and dependent data. * **Usage Data**: Information about website browsing activity, such as accessed pages, content viewed, and interactions. * **Access Records**: IP address, date, and time of website access, in compliance with applicable legislation. * **Location Data**: Geolocation data, if authorized, collected through devices (e.g., GPS). * **Device Data**: Information about the device, including operating system, version, and language preferences. * **Communications Data**: Information about communications with us, including metadata and content. * **Event and Survey Data**: Personal data collected at events, fairs, surveys, and promotional activities. * **Cookies and Browsing Data**: Data collected through cookies and similar technologies, as detailed in our [Cookie Policy](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy) . [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-4.-data-collection-methods) **4\. DATA COLLECTION METHODS** ----------------------------------------------------------------------------------------------------------------------------------------------------- We collect data through: * **Voluntary Provision**: Data provided by users when using our services, filling out forms, or participating in surveys. * **Automatic Collection**: Data collected automatically through applications and technologies during website browsing and service use. * **Event and Survey Interactions**: Data collected at events, fairs, surveys, sweepstakes, and challenges. * **Cookies**: As detailed in our [Cookie Policy](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy) . [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-5.-purpose-of-data-use) **5\. PURPOSE OF DATA USE** --------------------------------------------------------------------------------------------------------------------------------------------- We process data in accordance with the General Data Protection Regulation (GDPR) and applicable laws for the following purposes, in which the Company operates as a Controller of personal data, backed by the legal basis of Legitimate Interest: * To provide and improve access to our website, services, and facilities. * To analyze user traffic and enhance commercial and promotional initiatives, including personalized marketing. * To conduct research and generate statistical analyses for service and product/service improvement. * To facilitate commercial meetings and send relevant content and promotional materials. * To enable legal auditing and corporate operations (e.g., mergers, acquisitions). * To ensure safety and comply with legal obligations. Data may be used for compatible purposes not explicitly stated herein with prior authorization. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-6.-data-sharing) **6\. DATA SHARING** ------------------------------------------------------------------------------------------------------------------------------- We may share data with: * **Our Professionals**: To provide and support our services. * **Advisors and Auditors**: For corporate operations, where data may be considered assets. * **Service Providers**: For marketing, security, CRM, and data storage purposes. * **Public and Government Authorities**: When required by law. We ensure data confidentiality and security during sharing, and aim to anonymize data when possible. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-7.-third-party-plug-ins) **7\. THIRD PARTY PLUG-INS** ----------------------------------------------------------------------------------------------------------------------------------------------- In order to ensure the operation of some of our services, we use third party applications or plug-ins. We will inform you on these plug-ins within this section. Plug-ins – are independent extensions of social network providers and other services. Therefore, we do not control the amount of data collected and saved by the providers of the social network performed via a plug-in. The objectives and the scope of data collection, further data processing by social network, as well as the rights and parameters of settings for the protection of your privacy associated with them can be found in the data protection policy of the respective social network. You should not use the respective plug-ins, if you do not wish the providers of social networks to receive data regarding this on-line offer or to continue using these data. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-8.-for-candidates-to-vacancies) **8\. FOR CANDIDATES TO VACANCIES** ------------------------------------------------------------------------------------------------------------------------------------------------------------- A special section Vacancies is provided on the home page of the Company for people looking for vacancies. If you are using our website to seek a job or decide to send us your CV in reply to an advertised vacancy, you are giving us your consent to use your personal data in order to perform our recruiting procedures. Any CV received by the Company from unsuccessful applicant will be deleted/destroyed no later than three months after the date of receipt thereof. All CVs submitted via the form of the website, shall be received by the support service of Company and then transferred to the Human Resources Department. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-9.-international-data-transfer) **9\. INTERNATIONAL DATA TRANSFER** ------------------------------------------------------------------------------------------------------------------------------------------------------------- Personal data can be processed and stored in the United States and other regions. Amazon Web Services (“AWS”) infrastructure is used by Oz for data processing. To ensure compliance with international data transfer regulations, Oz Forensics has established contracts with Amazon that offer the required legal framework for these services. The data is transferred through secure protocols and data will remain stored in encrypted form. You have the option to directly exercise your GDPR rights with Oz Forensics at any point in time (refer to the “YOUR RIGHTS” section). [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-10.-data-retention) **10\. DATA RETENTION** ------------------------------------------------------------------------------------------------------------------------------------- We retain data as long as necessary for: * Ongoing relationships and service provision. * Legitimate interests, such as fraud prevention and security. * Compliance with legal and regulatory obligations. [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-11.-your-rights) **11\. YOUR RIGHTS** ------------------------------------------------------------------------------------------------------------------------------- As a data subject under the GDPR, you possess the following rights: * Obtain confirmation of the existence of the processing of your data; * Request a copy of your personal data; * Correct incomplete, inaccurate, or outdated data; * Request deletion of personal data that is unnecessary, excessive, or processed in violation of GDPR. * Withdraw previously given consent to process your personal data; * Request restriction of personal data processing or object to the personal data processing; * Request the portability of data to another service or product provider. To exercise your rights, please access our [Privacy Centralarrow-up-right](https://privacy-central.securiti.ai/#/dsr/4f9a98a9-9564-4bb7-a8c3-20eb7803c484) . Exercising your right to receive a copy of your personal data cannot infringe upon the rights and freedoms of other individuals. To ensure your security and enable you to exercise your data rights, we need to verify your identity. This verification may involve requesting additional personal information. By submitting a rights request, you authorize us to collect, use, process, and store your personal data as described in this Privacy Policy. We will receive and analyze all requests. If your request is denied, we will provide a proper justification for the refusal. The processing of the requests will be done as quickly as possible, but within one month at the latest. The one-month timeframe begins upon confirmation of your identity or, if not requested by the company, upon receipt of your request. The requested information will then be provided to you. For complex or numerous requests, the company may extend the information provision period by an additional two months, provided you are notified beforehand. In addition, you can also lodge a complaint with the Portuguese Supervisory Authority, the Comissão Nacional de Proteção de Dados (CNPD). [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-12.-data-protection) **12\. DATA PROTECTION** --------------------------------------------------------------------------------------------------------------------------------------- We implement technical measures to protect personal data, including: * GDPR-compliant and ISO-certified servers * Physical security measures at our premises * Data encryption (SSL) * Firewalls and intrusion detection systems * Other security measures in line with current technology [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-13.-contact-information) **13\. CONTACT INFORMATION** ----------------------------------------------------------------------------------------------------------------------------------------------- All queries regarding the provisions of the Policy may be sent to us by one of the following means: OZ FORENSICS SOFTWARE TRADING LLC Office 384, Saih Shuaib Bldg 2 area, DIC, Dubai, UAE You can directly contact our Data Protection Officer (DPO), who is responsible for Oz Forensics Privacy Program, by sending an email to: [\[email protected\]envelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#3141435847505248715e4b575e43545f425852421f525e5c) [hashtag](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-14.-policy-updates) **14\. POLICY UPDATES** ------------------------------------------------------------------------------------------------------------------------------------- We may update this policy periodically. The current version will always be available on our website. Continued use of our services implies acceptance of the updated policy. [PreviousCookie Policychevron-left](https://doc.ozforensics.com/oz-knowledge/privacy/cookie-policy) [NextPrivacy Policy: Oz Demo Application and Web Demochevron-right](https://doc.ozforensics.com/oz-knowledge/privacy/privacy-policy-oz-demo-application-and-web-demo) Last updated 6 months ago Was this helpful? * [1\. INTRODUCTION](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-1.-introduction) * [2\. AREA OF POLICY APPLICATION](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-2.-area-of-policy-application) * [3\. INFORMATION COLLECTION](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-3.-information-collection) * [4\. DATA COLLECTION METHODS](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-4.-data-collection-methods) * [5\. PURPOSE OF DATA USE](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-5.-purpose-of-data-use) * [6\. DATA SHARING](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-6.-data-sharing) * [7\. THIRD PARTY PLUG-INS](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-7.-third-party-plug-ins) * [8\. FOR CANDIDATES TO VACANCIES](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-8.-for-candidates-to-vacancies) * [9\. INTERNATIONAL DATA TRANSFER](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-9.-international-data-transfer) * [10\. DATA RETENTION](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-10.-data-retention) * [11\. YOUR RIGHTS](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-11.-your-rights) * [12\. DATA PROTECTION](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-12.-data-protection) * [13\. CONTACT INFORMATION](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-13.-contact-information) * [14\. POLICY UPDATES](https://doc.ozforensics.com/oz-knowledge/privacy/website-privacy-policy#id-14.-policy-updates) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Collection | Oz Knowledge ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist#creating-a-collection) Creating a Collection 1. Select your **Company** in the **Users** tab. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F8c2MGZIhC5KJTXVodENn%252Fblack1.png%3Falt%3Dmedia%26token%3D3dd9fee1-192a-49e9-a516-c5d588648d54&width=768&dpr=3&quality=100&sign=f1e28cc7&sv=2) 2\. Click the **Add** button (1) in the **Image collection** section in the **Edit company** window. In the window that appears, enter any name for the collection base (2), for example, "Collection2025", etc. Click the **Submit** button (3) and **Submit** (4) again. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-MbGN9WyD3RN389_-dG8%252F-MbGNmhNauI0eD-hr0jA%252FBLcreate_eng.png%3Falt%3Dmedia%26token%3Db357e852-b35e-4217-b477-ad76bd78d932&width=768&dpr=3&quality=100&sign=d7ec5600&sv=2) 3\. When the company is reopened from the list of users, you will see the created collection of images. It can be opened by clicking on its name, synchronized, edited (with images added), and deleted if necessary. You can create any number of lists. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-MbGNq5H2HhI9m8IjQQP%252F-MbGQdkBjrXtqsWKI6nr%252FBLready_eng.png%3Falt%3Dmedia%26token%3Dad42a5a8-cfcf-4e97-8b3f-3654d856ec33&width=768&dpr=3&quality=100&sign=86f6d0b2&sv=2) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist#adding-images-to-the-collection) Adding Images to the Collection 1. Select your **Company** in the **Users** tab. 2. In the window that appears, in the **Image collection** area, select the required Collection and click the **Edit** button (or the name of the collection). ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-MbGQyxeit-gVKQf3R0O%252F-MbGSjrOXaLDoCe90x3r%252FBLedit_eng.png%3Falt%3Dmedia%26token%3D0d76f2a8-0b22-4063-b926-de70a5201ab7&width=768&dpr=3&quality=100&sign=bc27b4a0&sv=2) 3\. In the area that opens, click the **Add** button. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-MbGSm5382p-PHv8bMMH%252F-MbGTc5sK2yPlgKL4SPO%252FBLedit1_eng.png%3Falt%3Dmedia%26token%3D7e2670b0-6e72-4674-9db0-5b03c471a3f5&width=768&dpr=3&quality=100&sign=6b51edaf&sv=2) 4\. Click the **Add** button in the window that appears. Upload a photo from your computer. Next, specify the **Content Type**, for example, **Selfie**. The **First Name**, **Middle Name**, **Last Name** fields are optional. This data can be filled in later by choosing to edit the image from the **Persons** list. When finished, click the **Submit** button. In the **Edit company** window, click the **Synchronize** button (it will be highlighted in red) and then the **Submit** button. circle-info Please note: the sync button will be grayed out and start spinning. You do not have to wait for it to stop, as it can take a long time (up to 10 minutes). ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-MbGVePRD3JGdLFqubfZ%252F-MbGXDFx3NoYfT5aD15g%252FBLadd1_eng.png%3Falt%3Dmedia%26token%3Dcf02f33a-2c93-4e30-aabe-cef31b6dfbd6&width=768&dpr=3&quality=100&sign=fd5861ec&sv=2) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist#removing-images-from-the-collection) Removing Images from the Collection 1. Select your **Company** in the **Users** tab. 2. In the window that appears, in the **Image collection** area, select the required collection and click the **Edit** button (or the name of the collection). 3. In the opened area in the **Persons** list, find the required image and click the **Delete** button next to it. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-MbGXEwwFLqhn6IVKpbg%252F-MbGbWHueeyhBaO7bCu_%252FBLdel_eng.png%3Falt%3Dmedia%26token%3Dee2d91af-b5d5-42db-9a49-2bc26d36063c&width=768&dpr=3&quality=100&sign=dea2215a&sv=2) 4\. Confirm the deletion: in the window "**Delete person?**", click **Delete**. [PreviousUsers and Companieschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users) [NextStatisticschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics) Last updated 3 months ago Was this helpful? * [Creating a Collection](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist#creating-a-collection) * [Adding Images to the Collection](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist#adding-images-to-the-collection) * [Removing Images from the Collection](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist#removing-images-from-the-collection) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # FAQ | Oz Knowledge ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#general) General chevron-rightDo Oz Forensics Products Have Any Certificates?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#do-oz-forensics-products-have-any-certificates) We certified our architecture at iBeta: * the frontend SDK capture method (at iBeta we provided a mobile SDK) and * the full processing of presentation attack detection on the side of Oz API. If you replace Mobile SDK capture with Web SDK capture, the architecture and security accuracy to presentation attacks remain the same, but in some cases the False Rejection Rate might increase due to the lower quality of the laptop cameras. Also, for the scenario of using our Web SDK we have implemented an additional layer of protection against deepfake / injection attack: camera spoofing detection (injection attacks / deep fake) [![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2Flh6.googleusercontent.com%2F1UyV2_hoG7EC4Gu3Cqdp_LUEyIUt-NBHiJeuLV1w8aZ2GkBKSgGmZ8lmMOI-UZSANPatgIiiFghzwxkC0Y1fh-0o_PrvZfBmN_CGDwsG1IbCnW37lgc17YTaT-yrhP-7U_cvqljAlOFcmcm84VYV9g8&width=300&dpr=3&quality=100&sign=914ef8e1&sv=2)Oz Liveness against new generation of biometric attacksarrow-up-right](https://www.youtube.com/watch?v=JnMwxZQ5I4o) However, these types of attacks are not related to presentation attacks and are not included in the iBeta certification scope. chevron-rightHow Do I Authorize in Oz API?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#how-do-i-authorize-in-oz-api) Obtain the authorization token via API, as described [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/authentication) . To get the token, you need credentials and API address provided by us. The token is necessary for all subsequent interactions with Oz API. chevron-rightWhat Are Oz System Requirements?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-are-oz-system-requirements) Oz Biometry / Liveness Server * CPU: 16 cores * RAM: 32 GB * Disk: 80 GB Oz API / Web UI / Web SDK Server * CPU: 8 cores * RAM: 16 GB * Disk: 300 GB Please check the [compatibility table](https://doc.ozforensics.com/oz-knowledge/other/compatibility) for OS versions. You can use two virtual machines on a single physical host, but make sure your server is powerful enough. Please note: if you implement the [on-premise model of usage](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose) , the better your hardware is, the faster the analyses are. chevron-rightHow to Estimate Hardware Requirements Based on Requests per Minute/Hour[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#how-to-estimate-hardware-requirements-based-on-requests-per-minute-hour) The system's throughput capacity depends on the number of Oz Biometry/Liveness [servers](https://doc.ozforensics.com/oz-knowledge/other/faq#what-are-oz-system-requirements) you’ve set up. Each server or pod (Docker/K8s) can handle: * Up to 34 analyses per minute, 2040 analyses per hour, * Up to 2 simultaneous threads To increase performance, scale the deployment horizontally by adding more servers or pods. chevron-rightHow to Test Oz Solutions?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#how-to-test-oz-solutions) On the basic level, you can test them yourself without even involving our engineers: visit our [Web Demo pagearrow-up-right](https://ozforensics.com/try_for_free/OzLivenessPublicDemo) or download our demo application from [Google Playarrow-up-right](https://play.google.com/store/apps/details?id=com.ozforensics.liveness.demo&hl=en) (Android) or [TestFlightarrow-up-right](https://testflight.apple.com/join/mBbPQqnM) (iOS) with the on-device functionality. To explore more features, [contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#ff96919990bf908599908d9a918c969c8cd19c9092) to get the credentials and necessary links to access: * the server-based liveness and face matching analyses, * extended Web Demo, * Web console to check the info on orders and analyses, * and REST API. We'll be happy to provide you with any support. chevron-rightCan I Use My Own Dataset for Testing?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#can-i-use-my-own-dataset-for-testing) Surely, you can. [Contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#0e676068614e617468617c6b607d676d7d206d6163) to get your credentials for accessing Oz API. Then, follow the instructions from [this integration guide](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/face-matching/how-to-add-face-matching-of-liveness-video-with-a-reference-photo-from-your-database) . chevron-rightDoes Oz SDK Protect from Injection Attacks (Virtual Cameras etc.)?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#does-oz-sdk-protect-from-injection-attacks-virtual-cameras-etc) Yes, we do provide protection from injection attacks. If you take a video using our SDK, you get the two-layer protection against injection attacks: the way we take videos allows our neural networks tracing the attacks in a video itself and the information gathered about the context and camera properties helps detect usage of virtual cameras or other injection methods. To avoid malicious intents, we do not allow usage of virtual cameras. chevron-rightWhat Is Telemetry, and Why Should I Use It?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-is-telemetry-and-why-should-i-use-it) Telemetry is a logging service that captures every detail of user session, from SDK initialization to the check results, including security check and common device data. The information we collect via telemetry is **anonymized**. Through telemetry, we **do not store**: * Direct identifiers (such as IMEI or username), * Financial data, * Communication data, * Location information, * Or any other data that is not required for incident investigation. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F4S7fIJiAOzkex6po7dsg%252Ftelemetry%2520pic.png%3Falt%3Dmedia%26token%3D9cc4ecef-9f7d-44b8-8e1b-0b366a06f4ba&width=300&dpr=3&quality=100&sign=8f5a608b&sv=2) Each event generates a telemetry record, and these records help a lot in investigating incidents and enhancing our defense against current and potential threats. We highly recommend enabling and storing telemetry data. For users of the cloud Oz API with native SDK version 8.0.0 and above, telemetry is automatically configured and saved alongside analysis data. In [on-premise setups](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose) , we suggest configuring telemetry and sending the data to our servers. Please contact us to obtain the necessary credentials. chevron-rightHow Often Do You Release New Software Versions?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#how-often-do-you-release-new-software-versions) We continuously improve our software, enhancing its performance and security. The typical update frequency is as follows: * Mobile SDKs: monthly updates, with major releases featuring significant changes occurring annually. * Web SDK: monthly updates, which may include significant changes. * API: updated once or twice a year, potentially incorporating significant changes. Regardless of the update's contents, we provide full support throughout the updating process to ensure seamless functionality. chevron-rightCan I Switch Off or Avoid Security Checks?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#can-i-switch-off-or-avoid-security-checks) Unfortunately, no. Security is our top priority, and these protection measures are essential to keeping your data safe. Disabling them could result in security risks, such as unauthorized access or data breaches. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#sdk) SDK chevron-rightWhat Is the Size of Oz Mobile SDKs?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-is-the-size-of-oz-mobile-sdks) The Mobile SDK size is about 5-7 MB. chevron-rightWhat Is the Captured Video File Size?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-is-the-captured-video-file-size) Native (Mobile) SDKs: [simple Selfie](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#passive-liveness) – 1-2 MB, [other gestures](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#active-liveness) – 1.2-4.5 MB. Web SDK: 2-5 MB. For the detailed information on the file sizes, please refer to [this article](https://doc.ozforensics.com/oz-knowledge/other/media-file-size-overview) . chevron-rightCan I Capture a Document Using Oz SDK?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#can-i-capture-a-document-using-oz-sdk) Document processing is not our specialization, and we do not have plans to develop in this direction. Our primary focus is to provide Liveness and Face Matching services with clear and precise results. Native (Mobile) SDKs do not include document capture functionality. Web SDK only offers a basic document capture screen. Neither SDK provides OCR (document fields recognition), document type identification, quality check, etc. For these tasks, consider integrating your own or third-party OCR software. You can utilize the documents for Face Matching with a Liveness video on the server side. Use the `photo_id_front` and `photo_id_back` tags for photos of the front and back sides of a document, respectively. chevron-rightWhat Languages Do Your SDKs Support, and How Can I Add a Custom Language?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-languages-do-your-sdks-support-and-how-can-i-add-a-custom-language) Web SDK: EN, ES, PT-BR, KK. Web Demo: EN, ES, PT-BR, KK. To add your own language to the Web SDK, please refer to [these instructions](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/localization-adding-a-custom-language-pack) . Mobile SDK: EN, ES, HY, KK, KY, TR, PT-BR. Mobile Demo: EN, ES, PT-BR. To add your own language to the Mobile SDKs, please refer to these instructions: [iOS](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/ios/ios-localization-adding-a-custom-or-updating-an-existing-language-pack) , [Android](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-localization-adding-a-custom-or-updating-an-existing-language-pack) . chevron-rightHow Do I Change Texts in SDK Strings?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#how-do-i-change-texts-in-sdk-strings) You can change any SDK message. To do so, please proceed to the localization section of the required SDK: * [Web SDK](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-liveness-websdk/web-plugin/localization-adding-a-custom-language-pack) * [Android SDK](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-localization-adding-a-custom-or-updating-an-existing-language-pack) * [iOS SDK](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/android/android-localization-adding-a-custom-or-updating-an-existing-language-pack) Download the strings file. It consists of the localization records. Each record contains a key and a text for this key. Make your changes and follow the instructions provided. **Please note**: in the mobile SDKs, the text changing feature has been implemented in 8.1.0. chevron-rightDo Oz SDKs Work with Flutter (Xamarin, React, etc.)?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#do-oz-sdks-work-with-flutter-xamarin-react-etc) Our SDKs can be integrated with any framework or library. For Native SDKs, we have created our own Flutter SDK for iOS and Android: please refer to [this section](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/sdk/oz-mobile-sdk/flutter) . You can also incorporate them with such frameworks as Cordova, Xamarin, Ionic, Kotlin Multiplatform, React Native, etc. For Web SDK, we have samples for Angular, React, Vue, and Svelte. Replace `https://web-sdk.sandbox.ozforensics.com` in index.html with your Web Adapter link if needed. * [Angulararrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-angular) sample * [Reactarrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-react/-/tree/main) sample * [Vuearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-vue) sample * [Sveltearrow-up-right](https://gitlab.com/oz-forensics/oz-liveness-sample-web-svelte) sample chevron-rightWhat If I Do Not Use Oz SDK to Capture Video?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-if-i-do-not-use-oz-sdk-to-capture-video) You can use any media to analyze. However, with our SDKs, the accuracy of the analyses is higher as the quality of a video taken by our SDKs is optimal for the subsequent Liveness analysis. The seamless integration of video capturing and video analyzing components ensures the whole process goes smoothly. Also, we designed our SDKs with real users in mind, providing great user experience. If you take a video using our SDK, you get the two-layer protection against injection attacks: the way we take videos allows our neural networks tracing the attacks in a video itself and the information gathered about context and camera properties helps detect usage of virtual cameras or other injection methods. chevron-rightDo You Perform Any Media Quality Checks During Analyses?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#do-you-perform-any-media-quality-checks-during-analyses) The analyses handle media in their raw form without assessing their quality. However, we do pay attention to media quality when we take a photo or video using our SDK. We check illumination, face size and position, presence of any additional objects, etc. You can find the list of our SDK checks [here](https://doc.ozforensics.com/oz-knowledge/other/oz-sdk-media-quality-checks) . Please note that if you use your own or a third-party SDK to capture a photo or video, the result should meet our [quality criteria](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements) . Otherwise, it might affect the accuracy of the analyses. chevron-rightDo Your SDKs Support Voiceover, and How Can I Enable It?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#do-your-sdks-support-voiceover-and-how-can-i-enable-it) Yes, our SDKs support voiceover. This functionality has been available since Android and iOS SDK version 8.14 and Web SDK version 1.7.14. Voiceover in our SDKs turns on automatically if the corresponding option has been enabled in the device settings. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#analyses) Analyses chevron-rightHow Much Time Do the Analyses Take?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#how-much-time-do-the-analyses-take) Usually the analysis takes 1-3 seconds. * The time depends on the analysis type (on-device or server-based) and some other factors. **Server-based**: for the [on-premise model of usage](https://doc.ozforensics.com/oz-knowledge/general/readme/saas-on-premise-on-device-what-to-choose) , it is your hardware that matters the most. For SaaS, our hardware is used, but still, at the peak times the analysis might take longer because of the increased load. **On-device iOS**: less than a second. **On-device Android**: on new smartphones – up to three seconds, depends on CPU. * On old models, these numbers might be a bit higher. The newer your smartphone is, the faster the analyses are. We recommend using server-based analyses whenever possible, as on-device ones tend to produce less accurate results. chevron-rightHow to Download All Orders' Data?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#how-to-download-all-orders-data) All your orders' data can be retrieved via API. Call `GET Folder [LIST].` The response will be a JSON file with all information needed. If you require the detailed data on your analyses, make sure the `with_analyses` parameter is set to `True`: `GET /api/folders/?with_analyses=true`. You can also specify other parameters like user ID or analysis type. To download our Postman collection, please proceed [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections) . To retrieve the information on the particular order (folder), you'll need its ID. In the web console, go to the **Orders** tab, click **Filter**, enter the order number in the appropriate field, and click **Search**. Once the order needed is displayed, click the **icon with PDF on it**, select the report template, and click **Continue**. The order data will be downloaded in the PDF format. To learn more about working with Oz web console, please refer to [this section](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui) . chevron-rightHow Do I Perform the Liveness Analysis for a Photo?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#how-do-i-perform-the-liveness-analysis-for-a-photo) With API 5.0.0 and above, you can perform the Liveness analysis for any media, including images. With API 4.0.8 and below, Liveness doesn’t work with images, but accepts frame sequences. Thus, to perform an analysis using a photo, you need to turn it into a frame sequence of a single frame. Place the photo into a ZIP archive and use video tags, so that Liveness algorithms treat this photo as a video. You can find more information in our [integration guide](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-check-your-media-for-liveness-without-oz-front-end#2.-convert-a-single-image-to-an-archive) . chevron-rightWhat Is the Difference Between One shot, Selfie, and Best Shot?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-is-the-difference-between-one-shot-selfie-and-best-shot) **One shot** and **Selfie** are [Passive Liveness](https://doc.ozforensics.com/oz-knowledge/general/readme/passive-and-active-liveness#passive-liveness) actions. For the **Selfie** action, we take a short video and send it to the analysis. For **One shot**, only a single frame is used, which lowers both file size and analysis accuracy. We recommend avoiding the **One Shot** gesture whenever possible, as it tends to produce less accurate results. **Best Shot** is not an action. It is an [option](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness/best-shot) that allows to save the best (the most high-quality and well-tuned) frame from the Liveness video. This option works only as an addition to Liveness. However, for a **One Shot** gesture we tend to take the best shot frame. chevron-rightWhat is the Difference between the DECLINED and FAILED Statuses?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-is-the-difference-between-the-declined-and-failed-statuses) The analysis is marked as `FAILED` when it encounters an error preventing its completion. For example, if the system fails to detect any faces in a media file, there is no content to analyze, resulting in the `FAILED` status. The system provides an error description detailing the cause of the failure. If you have sent the analysis request via API, the error description is in the `error_message` field of the JSON response. In the Web Console order, click the red exclamation mark to open the window with the description. The `DECLINED` status means that the analysis has finished, and the system considered that the check was not successful. You will also get a number which is the analysis' [resulting score](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/use-cases/quantitative-results) . For instance, the analysis receives the `DECLINED` status when two faces in media files don't match (Face Matching) or when the spoofing attack is detected (Liveness). For more details on statuses, please refer to [this article](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api) . chevron-rightWhat Impacts the Spoofing (Confidence) Score?[hashtag](https://doc.ozforensics.com/oz-knowledge/other/faq#what-impacts-the-spoofing-confidence-score) When calculating the spoofing score, the neural networks take into account many factors. Some of them can be explained, e.g., better (and better controlled) cameras usually produce more accurate scores. That is why scores from native SDKs are typically lower for original attempts than those from Web SDKs. However, due to the multitude of factors involved, the scores are not directly interpretable. Even when repeating attempts under similar conditions and seemingly making them the same, the images vary slightly from attempt to attempt, leading to potential differences in scores as well. Though, these factors can have a more significant impact and may result in false rejects, increasing FRR: * Camera defects or objects that partially obstruct the camera's field of view, such as protective films, cases, or holders. * Extreme lighting conditions. * Use of low-quality or specialized cameras. * Glasses with thick frames and screen reflections (standard optical glasses are generally accepted). * Headgear, which is mainly accepted when not covering the face, but may slightly affect the false rejection score. * Not using our SDK to record media can also be a significant factor contributing to poor liveness scores and false rejects. [PreviousChangelogchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog) [NextMedia Quality Requirementschevron-right](https://doc.ozforensics.com/oz-knowledge/other/media-quality-requirements) Last updated 20 days ago Was this helpful? * [General](https://doc.ozforensics.com/oz-knowledge/other/faq#general) * [SDK](https://doc.ozforensics.com/oz-knowledge/other/faq#sdk) * [Analyses](https://doc.ozforensics.com/oz-knowledge/other/faq#analyses) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Uploading and Analyzing Media | Oz Knowledge circle-info Please note: this method only works if your SDK version is below 3.0.0. If it is 3.0.0 or higher, please use the methods listed above. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/ios/uploading-and-analyzing-media#server-based-analyzes) Server-Based Analyzes Data to be uploaded and analyzed are stored in object results (see above), obtained after capturing and recording video. Upload it to the server and initiate the necessary analyses with the help of [Oz API](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) . A simple scenario of interaction with Oz API can be implemented with the `OZSDK.analyse` method as described below. Copy OZSDK.analyse( results: results, analyseStates: [.quality], fileUploadProgress: { (progress) in } ) { (resolution, error) in } The `completion` | `resolution` block will contain the result of the assigned analysis including status (status of the analysis), type (type of the analysis), and `folderID` (ID of the Oz API folder). To perform a cross-functional analysis based on video and document photos, use the `OZSDK.documentAnalyse` method: Copy OZSDK.documentAnalyse( documentPhoto: DocumentPhoto(front: frontDocumentURL, back: backDocumentURL), results: results, scenarioState: { (state) in }, fileUploadProgress: { (progress) in } ) { (folderResolutionStatus, resolutions, error) } The `completion` | `resolution` block will contain the result of the assigned analysis (similar to `OZSDK.analyse`), where `folderResolutionStatus` is the general status of analyses for the folder. For both documents and face check, you can use the `OZSDK.uploadAndAnalyse` method: The `resolution` block will contain the result of the assigned analysis (similar to `OZSDK.analyse` and `OZSDK.documentAnalyse`). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/ios/uploading-and-analyzing-media#on-device-analyzes) On-Device Analyzes The methods below are used to analyze media on the device. Biometry: Liveness: [PreviousiOSchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/mobile-sdk/ios) [NextUser Guideschevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/user-guides) Last updated 1 year ago Was this helpful? Was this helpful? sun-brightdesktopmoon Copy OZSDK.uploadAndAnalyse(results: results, documentPhoto: DocumentPhoto(front: frontDocumentURL, back: backDocumentURL), analysisTypes: [.quality], metadata: nil, scenarioState: { state in }, fileUploadProgress: { progress in }) { status, resolution, error in }) Copy OZSDK.runOnDeviceBiometryAnalysis(firstResult: firstResult, secondResult: secondResult, completion: { status, error in //show result }) Copy OZSDK.runOnDeviceLivenessAnalysis(results: results, completion: {status, error in //show result }) sun-brightdesktopmoon --- # Statistics | Oz Knowledge ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fi5gDsjv5xmK4KH9rpSys%252Fcomponents-public-statistics.svg%3Falt%3Dmedia%26token%3D9629f626-907a-44fa-991a-911df770d5c4&width=768&dpr=3&quality=100&sign=bb2c2560&sv=2) When you switch to the **Statistics** module, the charts area is empty unless you have the previously saved graphs. The area of charts is divided according to the purpose of the information on the tabs: * Common info * Performance When created, the chart appears in the corresponding tab. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FU0C2RJZA98mvA37hwWAS%252F%25D1%258B%25D0%25B5%25D1%2584%25D0%25B5%2520%25D1%258C%25D1%2584%25D1%2588%25D1%2582.png%3Falt%3Dmedia%26token%3D102f3061-6779-489c-9bc5-af68e6b66831&width=768&dpr=3&quality=100&sign=d66477c9&sv=2) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#creating-a-chart) Creating a Chart -------------------------------------------------------------------------------------------------------------------------------------- 1. Click the **New chart** button to create a chart. 2. Select the type of chart from the dropdown list. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FOL6Fd57rervT8q96pVha%252FScreenshot_51.png%3Falt%3Dmedia%26token%3De4a28a11-52d4-4f16-8986-1608564a46ab&width=768&dpr=3&quality=100&sign=516603ca&sv=2) 3\. Click the **Create** button. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-legacy-files%2Fo%2Fassets%252F-MQv56Gc3Y1R9ZpI2hd6%252F-Mb1JUSQTuYtbkvpY32g%252F-Mb1KHpqQWyMnO5Ts90z%252Fnewgrafadd_eng.png%3Falt%3Dmedia%26token%3D6d6ae816-90c0-405b-ad60-19fbbbeb2759&width=768&dpr=3&quality=100&sign=e717a4d4&sv=2) The chart will be displayed in the tab corresponding to its type. There are 1-3 display options for charts, depending on their type: **Line, Donut**, and **Bar**. By default, the charts are displayed with the **All Results** option, filtered by the current week. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#chart-display-types) Chart Display Types 1. The **Line** Chart ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FP6pnKYZByPR1lJPJJmA1%252FScreenshot_64.png%3Falt%3Dmedia%26token%3D87e25321-d4dc-4d31-9167-0acfc9166565&width=768&dpr=3&quality=100&sign=8fd5910&sv=2) 2. The **Donut** chart ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F665klmVYaTmPAsofHuyi%252FScreenshot_65.png%3Falt%3Dmedia%26token%3D8e8b3fde-60be-4c3e-9ed1-c09cd14b7673&width=768&dpr=3&quality=100&sign=c673ea3b&sv=2) 3\. The **Bar** chart ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FeWI1y3Tu6AdpH49txR3p%252FScreenshot_66.png%3Falt%3Dmedia%26token%3D47d3bf3e-10a4-4f94-a469-53b69abcb2d0&width=768&dpr=3&quality=100&sign=8bc6dcd9&sv=2) 4\. Click the **cross** button to remove the chart from the viewing area. 5\. To download the graph image, click the button. The system will offer to save the image in the **PNG** format. 6\. To change the options for displaying data on the chart, select them from the dropdown menu. The default is **All Results**. Options may vary depending on the type of chart. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FlwZdBbW5zGbRaLuAG3kY%252FScreenshot_67.png%3Falt%3Dmedia%26token%3D8fa0891a-ab36-492b-bcf5-8882f5c0f45d&width=768&dpr=3&quality=100&sign=7e19e573&sv=2) 7\. Click the **Save Charts** button to save your favorite charts to the screen. The saved graphs will be loaded automatically the next time you enter **Statistics**. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FxRpzIZS4ei0aJayvC0FN%252FScreenshot_68.png%3Falt%3Dmedia%26token%3Ddad6b0e2-4970-47de-bc24-29a9ea01c76f&width=768&dpr=3&quality=100&sign=ff410e56&sv=2) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#types-of-charts) Types of Charts #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#amount-of-orders-by-summary-status) Amount of Orders by Summary Status The summary status of the order displays the worst result among the analysis results for this order. For instance, if one of the group of analyses has finished with the DECLINED [status](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#rezultat-analiza-analyse.resolution_status) , the order status will be DECLINED as well. circle-info The [order result](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#sostoyanie-zayavki-folder.resolution_status-1) receives the status of the last group of analyses applied to the folder. A group of analyses contains analyses you've sent in a single order. **Chart options:** * **All Results** – displays the sum of all results * **Any result** – showing all results on one chart separately, except for the **All results** option * **Processing** – results, where the analysis is in the "Processing" status * **Failed** – Analysis results with the error message "Failed" * **Declined** – the results of analyses, which indicate a low percentage of similarity with the reference image, or indicated inconsistencies in the fields of the document (depending on the modules) * **Success** – the results of analyses, which indicate a high percentage of similarity with the reference image, or indicate the full correspondence of the document fields (depending on the modules) * **Operator Required** – Analysis results, where the average percentage of coincidence is indicated and a decision by the operator is required Available display options are **Line**, **Donut**, and **Bar** charts. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#amount-of-orders-by-source) Amount of Orders by Source The amount of orders by source, where these orders came from. **Chart options:** * All sources * Any source * Unknown * Mobile SDK * Web SDK Available display options are **Line**, **Donut**, and **Bar** charts. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#amount-of-orders-by-company) Amount of Orders by Company The chart shows the users of which companies, how many orders have created during the period. This chart is displayed on the **User Activity** tab. **Chart options:** * All companies * Any company * ID of each company Available display options are **Line**, **Donut**, and **Bar** charts. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#amount-of-analyses-by-type) Amount of Analyses by Type The chart shows how many analyses and which type were generated during the period. **Chart options:** * All analyses * Any analysis * Documents * Biometry * Liveness * Collection Displays on the **Common Info** tab. Available display options are **Line**, **Donut**, and **Bar** charts. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#amount-of-analyses-by-result-type) Amount of Analyses by Result Type The chart shows how many [results](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api#rezultat-analiza-analyse.resolution_status) by [type](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check) of analysis were obtained during the period. **Analysis chart options:** * All analyses * Any analysis * Biometry * Documents * Liveness * Collection **Chart options by analysis results:** * All results * Any result * Processing * Failed * Declined * Success * Operator required Displays on the **Common Info** tab. Available display options are **Line**, **Donut**, and **Bar** charts. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#filter) Filter ------------------------------------------------------------------------------------------------------------------ You can filter your charts by the time period. Click the **Filter** button. The period **This week** is selected by highlighting in color by default. You can select any other period from the standard **Last month**, **This month**, **Last week**, etc., or specify a custom period in the **Date** field. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Fnta7MmB4WuUfOPZwqE67%252F%25D1%258B%25D0%25B5%25D1%2584%25D0%25B5%2520%25D0%25B0%25D1%2588%25D0%25B4%25D0%25B5%25D1%2583%25D0%25BA.png%3Falt%3Dmedia%26token%3D2f426939-21b1-4396-bd4a-e2b3913d3414&width=768&dpr=3&quality=100&sign=74a8e77f&sv=2) circle-info Make sure that none of the standard periods is selected before setting a custom period. If a standard period is selected, click on it to deselect it. circle-info For API 6.2.3, we recommend that you set the time range to no more than a month. Select the start date of the period, time (if you need), and the date and time of the end of the period. Click the **Search** button. The filter window will close, and the new result will be displayed on the chart. _Example. The period 04/20/2021 00:00 – 04/23/2021 00:00 will display the results for 3 days: April 20, 21 and 22._ ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F5W1Kzp78bN6p9NoXBSL5%252FScreenshot_157.jpg%3Falt%3Dmedia%26token%3D23efe09c-65fe-4182-a266-1582c9c36c6b&width=768&dpr=3&quality=100&sign=4f5ad3a7&sv=2) Click the **Clear** button, then the **Search** button to reset the filter. [PreviousCollectionchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/blacklist) [NextSettingschevron-right](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-settings) Last updated 28 days ago Was this helpful? * [Creating a Chart](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#creating-a-chart) * [Chart Display Types](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#chart-display-types) * [Types of Charts](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#types-of-charts) * [Filter](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-statistics#filter) Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Installation in Kubernetes | Oz Knowledge To install Oz product via Kubernetes, consider using Helm charts. * Oz API and related components: [Helm chartarrow-up-right](https://chartmuseum.infra.ozforensics.ai/api/charts/oz-k8s/) . * API 5.2: version 0.11.x, * API 5.3 (regulatory update for Kazakhstan): 0.12.x. * Web SDK: [Helm chartarrow-up-right](https://chartmuseum.infra.ozforensics.ai/api/charts/oz-k8s-sdk/) . Please note: the version of the chart is not tied to the Web SDK version. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#database-creation) Database Creation -------------------------------------------------------------------------------------------------------------------------------------------------- For testing purposes, the database installed and created automatically by the chart is sufficient. However, for production, **we strongly recommend using a separate, self-managed database**. Recommended PostgreSQL version: 15.5. chevron-rightPostgreSQL database parameters[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#postgresql-database-parameters) * `max_connections`: 2000 (may vary depending on number of API calls), * `shared_buffers`: 2 GB (amount of RAM divided by 2), * `effective_cache_size`: 6 GB (RAM – 2 GB), * `maintenance_work_mem`: 512 MB, * `checkpoint_completion_target`: 0.9, * `wal_buffers`: 16 MB, * `default_statistics_target`: 100, * `random_page_cost`: 1.1, * `effective_io_concurrency`: 200, * `work_mem`: 16 MB, * `min_wal_size`: 1 GB, * `max_wal_size`: 4 GB, * `max_worker_processes`: 4 (equal to the number of CPUs), * `max_parallel_workers_per_gather`: 2 (number of CPUs divided by 2), * `max_parallel_workers`: 4 (equal to the number of CPUs), * `max_parallel_maintenance_workers`: 2 (number of CPUs divided by 2), * If database is Dockered, set `shm_size: '1gb'`. Create a database using the script(s) below. API 1:N Copy     CREATE ROLE <> WITH LOGIN PASSWORD '<>'       INHERIT       CONNECTION LIMIT -1       NOSUPERUSER       NOCREATEDB       NOCREATEROLE       NOREPLICATION ;     CREATE DATABASE <>       WITH OWNER = <>           ENCODING = 'UTF8'           TABLESPACE = pg_default           CONNECTION LIMIT = -1           LC_COLLATE='en_US.UTF-8'           LC_CTYPE='en_US.UTF-8'           TEMPLATE template0;     \c <>     CREATE EXTENSION IF NOT EXISTS pgcrypto; Copy     CREATE ROLE <> WITH LOGIN PASSWORD '<>'       INHERIT       CONNECTION LIMIT -1       NOSUPERUSER       NOCREATEDB       NOCREATEROLE       NOREPLICATION ;     CREATE DATABASE <>       WITH OWNER = <>           ENCODING = 'UTF8'           TABLESPACE = pg_default           CONNECTION LIMIT = -1           LC_COLLATE='en_US.UTF-8'           LC_CTYPE='en_US.UTF-8'           TEMPLATE template0;     \c <>     CREATE EXTENSION IF NOT EXISTS pgcrypto;     CREATE EXTENSION IF NOT EXISTS vector; To increase performance, consider using this list of indexes: chevron-rightGateway indexes[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#gateway-indexes) [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#chart-deployment) Chart Deployment ------------------------------------------------------------------------------------------------------------------------------------------------ triangle-exclamation API and Web SDK charts require RWX SC (CephFS, EFS, NFS, Longhorn, etc.). chevron-rightExample of creating SC using AWS EFS[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#example-of-creating-sc-using-aws-efs) To deploy in Kubernetes, download the chart version you require and adjust the `values.yaml` file. This file specifies parameters for deployment of Oz products. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#api-1) API circle-info This example is based on the 0.11.28 chart version. Adjust the `values.yaml` file, setting the following mandatory parameters before deployment: * `ozDockerHubCreds`: you'll receive them from Oz Engineer. * `UserParams`: * `URLs`: * `apiURL`: URL for API. May be internal, if you use Web SDK only. For Mobile SDKs, should be public. Please refer to [this article](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/publishing-api-methods-in-the-internet-security-recommendations) for more information. * `DB`: must be set, if you use an external PostgreSQL server. For details, please check [Database Creation](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#database-creation) . * `use_chart_postgres`: false by default. Enables internal PostgreSQL server (not recommended for production). * `postgresUser`: same as `<>`. * `postgresHost`: the hostname of your PostgreSQL server. * `postgresDB`: same as `<>`. * `postgresUserPassword`: same as `<>`. * `postgresPort`: 5432 by default. * `o2nDB`: * `use_chart_o2nDB`: false by default. Enables internal PostgreSQL server (not recommended for production). * `startinit`: `true` by default. Enables database init scripts. Set to `false` after chart is deployed. * `creds`: * `postgresHost`: the hostname of your PostgreSQL server with 1:N database. * `postgresPort`: 5432 by default. * `postgresDB`: same as `<>`. * `postgresUser`: same as `<>`. * `postgresUserPassword`: Same as `<>`. * `Creds`: * `apiAdminLogin`: login for new (default) user for API. Will be created on the first run. * `apiAdminPass`: password for the default user. * `webUILocalAdminLogin`: local Admin for Web UI. Should differ from `apiAdminLogin`. * `webUILocalAdminPass`: password for `webUILocalAdminLogin`. * `BIO`: * `licenseKey`: you'll receive it from Oz Engineer / Sales. * `clientToken`: you'll receive it from Oz Engineer. * `pvc`: * `api`: * `static`: * `storageClassName`: RWX StorageClass. * `size`: Expected size for PV. * `Params`: * `Global`: * `startinits`: `false` by default. Set to `true` on the first run, then, after successful deployment, change back to `false`. To adjust API behavior, you might want to change other parameters. Please refer to comments in the `values.yaml` file. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#tfss-bio) TFSS (BIO) BIO is a part of the API chart. The BIO pods require separate nodes for each pod. To ensure BIO resides on dedicated nodes, you can use affinity and tolerations. The BIO behavior can be customized via `Params` -> `global` -> `affinity` in `values.yaml`. The default parameters are listed below: The example of chart deployment via Helm: ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#web-sdk) Web SDK circle-exclamation Installation of Web SDK requires API pre-installed. Except specific cases, Web SDK cannot work without API. For proper deployment, Web SDK requires an API service account. Pre-create a user for Web SDK with the CLIENT type and `is_service` flag set. Please refer to [User Roles](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles) for more details. circle-info This example is based on the 1.5.1+onPremise chart version. Adjust the `values.yaml` file, setting the following mandatory parameters before deployment: * `ozDockerHubCreds`: you'll receive them from Oz Engineer. * `UserParams`: * `URLs`: * `apiURL`: API URL. Can be an internal API URL. * `webSDKURL`: WebSDK url that will be used for public access. * `Creds`: * `AdminLogin`: login of the user that should be pre-created in API. Do not use the default admin login. * `AdminPass`: password of the pre-created user. * `PVC`: * `persistentStorage`: `false` be default. Set to `true` if you use more than 1 Web SDK pod. * `storageClassName`: RWX StorageClass. * `Params`: * `websdk`: * `license`: should contain your Web SDK license. You'll receive it from Oz Engineer / Sales. To adjust API behavior, you might want to change other parameters. Please refer to comments in the `values.yaml` file. The example of chart deployment via Helm: [PreviousInstallation in Dockerchevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-docker) [NextPerformance and Scalability Guidechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/performance-and-scalability-guide) Last updated 5 months ago Was this helpful? * [Database Creation](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#database-creation) * [Chart Deployment](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#chart-deployment) * [API](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#api-1) * [TFSS (BIO)](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#tfss-bio) * [Web SDK](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/installation-in-kubernetes#web-sdk) Was this helpful? sun-brightdesktopmoon Copy CREATE INDEX CONCURRENTLY gw_analyse_abstract_company_id_idx ON public.gw_analyse_abstract USING btree (company_id); CREATE INDEX CONCURRENTLY gw_analyse_abstract_folder_id ON public.gw_analyse_abstract USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_analyse_abstract_time_updated_state_idx ON public.gw_analyse_abstract USING btree (time_updated) WHERE (state = 'PROCESSING'::analyse_state); CREATE INDEX CONCURRENTLY idx_gw_analyse_abstract_state_time_updated ON public.gw_analyse_abstract USING btree (state, time_updated); CREATE INDEX CONCURRENTLY gw_analyse_collection_collection_id_idx ON public.gw_analyse_collection USING btree (collection_id); CREATE INDEX CONCURRENTLY gw_analyse_collection_person_media_association_person_id_idx ON public.gw_analyse_collection_person_media_association USING btree (person_id); CREATE INDEX CONCURRENTLY gw_analyse_cpma_media_association_id_idx ON public.gw_analyse_collection_person_media_association USING btree (media_association_id); CREATE INDEX CONCURRENTLY gw_analyse_result_group_image_analyse_id_idx ON public.gw_analyse_result_group_image USING btree (analyse_id); CREATE INDEX CONCURRENTLY gw_analyse_result_group_image_image_id_idx ON public.gw_analyse_result_group_image USING btree (image_id); CREATE INDEX CONCURRENTLY gw_analyse_result_image_media_association_id_idx ON public.gw_analyse_result_image USING btree (media_association_id); CREATE INDEX CONCURRENTLY gw_analyse_source_media_association_analyse_id_idx ON public.gw_analyse_source_media_association USING btree (analyse_id); CREATE INDEX CONCURRENTLY gw_analyse_source_media_association_source_image_id_idx ON public.gw_analyse_source_media_association USING btree (source_image_id); CREATE INDEX CONCURRENTLY gw_analyse_source_media_association_source_shots_set_id_idx ON public.gw_analyse_source_media_association USING btree (source_shots_set_id); CREATE INDEX CONCURRENTLY gw_analyse_source_media_association_source_video_id_idx ON public.gw_analyse_source_media_association USING btree (source_video_id); CREATE INDEX CONCURRENTLY gw_collection_company_id_idx ON public.gw_collection USING btree (company_id); CREATE INDEX CONCURRENTLY gw_collection_creator_id_idx ON public.gw_collection USING btree (creator_id); CREATE INDEX CONCURRENTLY gw_collection_person_collection_id_idx ON public.gw_collection_person USING btree (collection_id); CREATE INDEX CONCURRENTLY gw_collection_person_image_person_id_idx ON public.gw_collection_person_image USING btree (person_id); CREATE INDEX CONCURRENTLY gw_folder_company_id_idx ON public.gw_folder USING btree (company_id) WHERE (NOT is_archive); CREATE INDEX CONCURRENTLY gw_folder_event_session_id_idx ON public.gw_folder USING btree (((meta_data ->> 'event_session_id'::text))) WHERE (NOT is_archive); CREATE INDEX CONCURRENTLY gw_folder_resolution_author_id_idx ON public.gw_folder USING btree (resolution_author_id); CREATE INDEX CONCURRENTLY gw_folder_resolution_comment_fts_idx ON public.gw_folder USING gin (to_tsvector('english'::regconfig, (resolution_comment)::text)); CREATE INDEX CONCURRENTLY gw_folder_time_created_folder_id_idx ON public.gw_folder USING btree (time_created DESC, folder_id DESC); CREATE INDEX CONCURRENTLY gw_folder_time_created_folder_id_nonarchive_idx ON public.gw_folder USING btree (time_created DESC, folder_id DESC) WHERE (is_archive = false); CREATE INDEX CONCURRENTLY gw_folder_time_created_idx ON public.gw_folder USING btree (time_created DESC); CREATE INDEX CONCURRENTLY gw_folder_time_created_nonarchive_idx ON public.gw_folder USING btree (time_created DESC) WHERE (is_archive = false); CREATE INDEX CONCURRENTLY gw_folder_user_id_idx ON public.gw_folder USING btree (user_id); CREATE INDEX CONCURRENTLY idx_gw_folder_transaction_id ON public.gw_folder USING btree (company_id, ((meta_data ->> 'transaction_id'::text))) WHERE (NOT is_archive); CREATE INDEX CONCURRENTLY idx_gw_folder_user_id_time_created ON public.gw_folder USING btree (user_id, time_created); CREATE INDEX CONCURRENTLY gw_folder_image_folder_id_idx ON public.gw_folder_image USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_folder_report_author_id_idx ON public.gw_folder_report USING btree (author_id); CREATE INDEX CONCURRENTLY gw_folder_report_folder_id_idx ON public.gw_folder_report USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_folder_report_report_template_id_idx ON public.gw_folder_report USING btree (report_template_id); CREATE INDEX CONCURRENTLY idx_gw_folder_shots_set_folder_id ON public.gw_folder_shots_set USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_folder_video_folder_id_idx ON public.gw_folder_video USING btree (folder_id); CREATE INDEX CONCURRENTLY gw_logging_event_record_session_id_idx ON public.gw_logging_event_record USING btree (session_id); CREATE INDEX CONCURRENTLY gw_logging_event_record_time_created_idx ON public.gw_logging_event_record USING btree (time_created); CREATE INDEX CONCURRENTLY gw_logging_event_record_timemark_idx ON public.gw_logging_event_record USING btree (timemark); CREATE INDEX CONCURRENTLY gw_logging_event_session_time_created_idx ON public.gw_logging_event_session USING btree (time_created); CREATE INDEX CONCURRENTLY gw_logging_event_session_user_id_idx ON public.gw_logging_event_session USING btree (user_id); CREATE INDEX CONCURRENTLY gw_logging_event_session_time_updated_idx ON gw_logging_event_session(time_updated); CREATE INDEX CONCURRENTLY gw_report_template_company_id_idx ON public.gw_report_template USING btree (company_id); CREATE INDEX CONCURRENTLY gw_report_template_name_company_id_idx ON public.gw_report_template USING btree (name, company_id); CREATE INDEX CONCURRENTLY gw_report_template_attachment_filename_report_template_id_idx ON public.gw_report_template_attachment USING btree (filename, report_template_id); CREATE INDEX CONCURRENTLY gw_report_template_attachment_report_template_id_idx ON public.gw_report_template_attachment USING btree (report_template_id); CREATE INDEX CONCURRENTLY gw_role_abstract_user_company_id_idx ON public.gw_role_abstract_user USING btree (company_id); CREATE INDEX CONCURRENTLY gw_role_email_restore_code_user_id_idx ON public.gw_role_email_restore_code USING btree (user_id); CREATE INDEX CONCURRENTLY gw_role_session_old_access_token_idx ON public.gw_role_session USING btree (old_access_token); CREATE INDEX CONCURRENTLY gw_role_session_user_id_idx ON public.gw_role_session USING btree (user_id); CREATE INDEX CONCURRENTLY gw_role_user_photo_user_id_idx ON public.gw_role_user_photo USING btree (user_id); CREATE INDEX CONCURRENTLY gw_shots_set_frame_shots_set_id_idx ON public.gw_shots_set_frame USING btree (shots_set_id); CREATE INDEX CONCURRENTLY gw_utils_audit_actor_id_idx ON public.gw_utils_audit USING btree (actor_id); CREATE INDEX CONCURRENTLY gw_utils_media_company_id_idx ON public.gw_utils_media USING btree (company_id); Copy kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: efs-sc-api provisioner: efs.csi.aws.com allowVolumeExpansion: true #Use Retain if you are going to use PVC for static, or your static will be deleted on chart uninstall reclaimPolicy: Retain mountOptions: - tls - iam parameters: provisioningMode: efs-ap fileSystemId: fs-____________ directoryPerms: "770" uid: "1000" gid: "1000" basePath: "" Copy # We recommend using separate nodes for API and BIO pods, # and separate node for each BIO pod. ## Default affinity is: ## Try to start API pods on nodes with "oz:api" label, BIO pods on nodes with "oz:bio" label affinity: API: # You may add additional keys, or comment the whole section to disable affinity nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: oz operator: In values: - api # nodeName: "myNode" #Node name can be changed. Uncomment to use # nodeSelector: ##NodeSelector can be changed. Uncomment to use # oz: api # fill tolerations according to node taints, uncomment to use #tolerations: #- key: nodegroup # operator: Equal # value: api # effect: NoSchedule BIO: # You may add additional keys, or comment the whole section to disable affinity nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 1 preference: matchExpressions: - key: oz operator: In values: - bio # nodeName: "myNode" ## Node name can be changed. Uncomment to use. # nodeSelector: ## NodeSelector can be changed. Uncomment to use. # oz: bio # fill tolerations according to node taints, uncomment to use. #tolerations: #- key: nodegroup # operator: Equal # value: bio # effect: NoSchedule Copy helm install oz-api https://chartmuseum.infra.ozforensics.ai/charts/oz-k8s-0.11.28.tgz --namespace oz-api --values custom-api-values.yaml Copy # Format: # Remark: Indentations are critical for yaml. license: |- { "payload_b64": "", "signature": "", "enc_public_key": "" } Copy helm install oz-websdk https://chartmuseum.infra.ozforensics.ai/charts/oz-k8s-sdk-1.5.1+onPremise.tgz --namespace oz-websdk --values custom-websdk-values.yaml sun-brightdesktopmoon --- # Changelog | Oz Knowledge #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j) 1.5.1 – Feb. 12, 2026 * **Black List** has been renamed to **Collection**. * Updated **Statistics** to 1.1.1. * The **Make Report** button in the **Statistics** section is temporarily hidden. * Now you can create an order report from the order screen. Click the **Show Report** button at the bottom of the page below the image. * The **Delete order** and **Delete** company buttons have been moved to the right side. * Resolved the issue with incorrect time offset for the UTC+6 timezone. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-1) 1.5.0 – Sept. 25, 2025 * Added sticky sessions to ease your work with multiple Web UI instances. * Updated the default report template. * Fixed a bug with spoofing thresholds being displayed differently in Web UI and API response. * Enhanced security. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-2) 1.4.2 – Aug. 27, 2025 * Optimized order list loading for API 6. * Timezone of analyses now matches the user’s timezone, you no longer have to adjust the UTC offset manually. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-3) 1.4.1 – June 26, 2025 * Security update. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-4) 1.4.0 – Apr. 29, 2025 * The **Analyses Duration** chart has been removed. * Updated the default report template. * Security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-5) 1.3.4 – Dec. 05, 2024 * Updated the report template to match the new Kazakhstan regulatory requirements. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-6) 1.3.3 – Feb. 16, 2024 * Disabled the automatic new order checking functionality in the **Orders** section to reduce server load and database traffic. * You can now refresh the Oz Web UI page manually, while keeping the filters and graphs applied earlier. This is available for the **Orders**, **Users**, **Companies**, and **Statistics** sections: just click **Refresh**. In the paginated sections, it also redirects to the first page. * The company filter for the `CLIENT ADMIN` role is now being applied automatically. * Deleted the data format field from the account settings. * Fixed an issue where seconds were not displayed in the **Date/Time** column and header of the exported report. * Bug fixes and security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-7) 1.3.2 – May 11, 2023 * Updated the default report template. * The time filter now works properly for reports. * The **Analyses duration** bar chart now works properly. * Fixed the displaying of the **Amount of Orders by Company** chart. * Fixed minor bugs related to the blacklist photo displaying. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-8) 1.3.1 – Apr. 19, 2023 * Updated the chart list, now you can create a chart according to: * Amount of orders by summary status, * Amount of orders by source, * Amount of analyses by type, * Amount of analyses by result type, * Amount of orders by company, * Analyses duration. * You can now check the API version in **Settings**. * Added new filters to the **Orders** section: "Analysis Type" and "Analysis Result". * The useless synchronization collection button is deleted. * Company deletion and report creation now work properly. * You cannot now delete a user with an order associated with them. * A user can review the images in analyses’ results even if they don’t have API access. * Once open in an order, media doesn’t get downloaded automatically anymore. * Line chart hints when the chart has several rows are now easier to read. * Fixed the minor bugs related to analyses and filters. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-9) 1.3.0 – Sept. 7, 2022 * Updated the filters and charts logic. * Improved the report form. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-10) 1.2.4 * Improved the work of **Companies** and **Orders** sections. * Improved and optimized the **Statistics** module. * Reports are now available in English. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-11) 1.1.3 * Renamed the **Date** field in filters to **Date/time**. * Updated the password change workflow. * Updated the report form. * Changed options in the list of Operator decisions. * Time filter on the **Statistics** page now works better. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.qcqxrji7sg2j-12) 1.1.1 * Deleted the useless **Add Company** button in the user editing form. * The **Statistics** module now works better. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.pcfz33aa9zf5) 1.1.0 * On the statistics page, the date filter now works properly. * If you choose to email credentials upon the user creation, and this email can't be delivered, the system won't create this user #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.pcfz33aa9zf5-1) 1.0.8 * Fixed a bunch of bugs. * Deleted the PhotoExpert/Image Forensics analysis which hasn't been supported for a long time. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.pcfz33aa9zf5-2) 1.0.7 * On the Statistics page, added a company filter. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.tcsgkti9bhhi) 1.0.6 * Administrators obtained the rights to switch users on and off. Requires API v 3.31.0. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.tvlghekumhve) 1.0.4. * Charts for meta fields are back. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.xugiyb1skal1) 1.0.2 * Added the best shot view to the Quality and Liveness analysis. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.za61u78udz9c) 1.0.1 * Updated to Laravel 8 and PHP 8. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.1jqmwiipvzc6) 0.6.48 * You can now see how much time it takes to analyze. * In statistics, company IDs are replaced by company names. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.ghw17vugl3ti) 0.6.44 * Added the folder ID to the report filename. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.ks3zg5yxdryi) 0.6.42 * If you have several report templates, when creating a new report, you’ll be prompted to choose a report. The automatic selection is removed. * Changed the folder creation process: the API profile `can_start_analyse_*` now determines whether an analysis can be launched or not. * You can now manage the `can_start_analyse_*` user profile fields. * When managing user, Admin or Client Admin can’t change the fields of `can_start_analyse_*` without having the access to it. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.w3xh9742f8yr) 0.6.41 * Changed the authorization via API. * Added a chart for the number of folders. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.15qs6or81ovr) 0.6.39 * Fixed the date/time folder in the folders list. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.i3gs0j2eczb8) 0.6.38 * Added the date/time folder to the folders list. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.5k0l9aihrjn8) 0.6.36 * The timezone has been moved to the user profile. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.o49nvm1ed3h8) 0.6.34 * Added a bar chart. * Added the analyse.state filter. * Now you can export folders as .xls. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.6z7sdjsk40p7) 0.6.33 * Saving a set of charts now works properly. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.nrf4gnfjlrkq) 0.6.32 * Added new client charts. * Added labels for the pie chart. * You can now search for users via `search_text`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.992vd9tblz0g) 0.6.31 * Removed the metadata charts. * Cleared the default charts list. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.6u2r0zity6eo) 0.6.30 * Added a new chart. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.hnjr2lh8klvf) 0.6.29 * The Statistics link is now seen in the menu (with permissions and if the statistics exist). 0.6.27: * Charts now can be saved; once saved, they are displayed opened in statistics. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.8yqtmheilmjb) 0.6.26: * Localized charts. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.orrfr6dmu8ls) 0.6.25: * Added new statistics. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.84w51r7sps2e) 0.6.22: * Added a shot set support – media `SHOTS_SET_FOLDER`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.v5jdpa7987ab) 0.6.21: * Added the statistics module. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.ysvxzb4vyokt) 0.6.16: * Manual decisions now can be changed. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.f281vcdapx1e) 0.6.15: * Added client libraries for date/time displaying and improved client timezone recognition. * Fixed date/time displaying. * Added text wrapping for long metadata. * Added the Client Operator role. * Added manual decisions – a human can check whether the algorithms were right or not, and change the analysis result. * Added manual decision displaying. * Added buttons to view and make a decision. * Only Admin и Client Admin can see an analysis deletion button. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.npilc3pomxzs) 0.6.13: * Added the timezone offset – it is stored in cookies and is added to timestamps on the client side. The offset can be removed using js. * Fixed the server-side timezone offset. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.pis7372sin43) 0.6.12: * Added a default report template (.rml). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.yzdfv72wldwm) 0.6.11: * Added a customizable password generator . * Added the password generation customization interface with testing. * You can now send the user data via email. For additional recipients, use mail.use\_bcc. * Added a default company template. * You can now create a new company while adding new users. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.54cdblr7y01s) 0.6.10: * Added video orientation tags. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.b2eb6rg73asz) 0.6.9: * The list of available analyses now changes dynamically depending on what files you upload. * Added a file list check on the server side. When the folder is created, we check what media are included in it, and upload only the appropriate analyses. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.4xq6j6qz0rdo) 0.6.8 * You can see the program version in the **Settings** section. * The Quality analysis result now displays only spoofing chances. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.uv0ri05i8x85) 0.6.7 * Added a customizable date formatting for documents analysis. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.jn54kohkzpuh) 0.6.4 * Removed the resolution status filter for the folder list. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.doago9ushwto) 0.6.3 * Changed the analyses queue forming method upon the folder creation. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.5criac1gp3la) 0.6.2 * Added folder filters: ID, user, company, resolution. You can hide them if needed. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.11jgrto4kcus) 0.6.1 * Added the Photo Expert analysis. * Added the backside document check. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.ffsr7gn612pm) 0.6.0 * Folder owner details are now displayed. * Regarding the user role, you might see an owner with their name, email address, and company. * The User role doesn’t have access to see the folder owner. * Only Admin and Operator can see the owner company. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.1w7qsipahv4q) 0.5.8 * When you do something with a collection, its status updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.lv2nt8m7yh47) 0.5.6 * Fixed a bug related to filter fields deletion in the view folders section. * The synchronization button gets animated when synchronization is needed. * Changed the template and parser for the blacklist analysis. * In the collection person list, names are now displayed. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.fzzwdmo5n0uu) 0.5.5 * Users without company no longer see the company editing button. * You can now manage the collection rebuilding – status indication, errors, status check. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.3r02xdsanxoi) 0.5.2 * Changed the template management process. * You can now download the source files. * Fixed user management. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.lqsctl7d2k5c) 0.5.1 * You can now manage templates and collections (add/delete). * You can now add, edit, delete persons to collections, and work with related images. * Updated the interface. * Editing a company also allows managing its templates and collections. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.ag9z7466dd5n) 0.4.3 * Now you can delete a folder while viewing it. * Added labels to the user management buttons. * Fixed content-length for new cURL versions. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.othwofe3j58l) 0.4.2 * Added the “Errors only” filter to the documents' analysis results. * Switched off the liveness result in the Quality analysis. * Fixed errors in user and company management. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.iy7du191op25) 0.4.1 * Added resolution status. * Fixed reporting errors: from now on, to create a report a company should have at least one template. * Fixed image tags. * You can now see how many folders have appeared since you started to view the current folder list. * You can now select what analyses to launch. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/changelog#h.4exy2g4ivfnm) 0.3.1 * Fixed errors in long keys. * Removed the temporary users. * Removed the unnecessary timestamps. * User links (especially companies) are fixed. [PreviousSettingschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-settings) [NextFAQchevron-right](https://doc.ozforensics.com/oz-knowledge/other/faq) Last updated 27 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # User Roles | Oz Knowledge Each of the new API users should obtain a role to define access restrictions for direct API connections. Set the role in the `user_type` field when you create a new user. * `ADMIN` is a system administrator, who has unlimited access to all system objects, but can't change the analyses' statuses; * `OPERATOR` is a system operator, who can view all system objects and choose the analysis result via the **Make Decision** button (usually needed if the [status](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/statuses-in-api) is `OPERATOR_REQUIRED`); * `CLIENT` is a regular consumer account, who can upload media files, process analyses, view results in personal folders, generate reports for analyses. * `can_start_analysis_biometry` – an additional flag to allow access to [BIOMETRY](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/biometry) analyses (enabled by default); * `can_start_analysis_quality` – an additional flag to allow access to [LIVENESS](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness) (QUALITY) analyses (enabled by default); * `can_start_analysis_collection` – an additional flag to allow access to [BLACK LIST](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/collection) analyses (enabled by default). * `CLIENT ADMIN` is a company administrator that can manage their company account and users within it. Additionally, `CLIENT ADMIN` can view and edit data of all users within their company, delete files in folders, add or delete report templates with or without attachments, the reports themselves and single analyses, check statistics, add new blacklist collections. * `CLIENT OPERATOR` is similar to `OPERATOR` within their company. * `CLIENT SERVICE` is a service user account for automatic connection purposes. Authentication with this user creates a long-live access token (5 years by default). The token lifetime for regular uses is 15 minutes by default (parameterized) and, also by default, the lifetime of a token is extended with each request (parameterized). chevron-rightFor API versions below 6.0[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#for-api-versions-below-6.0) For API 5.3 and below, to create a CLIENT user with admin or service rights, you require to set the corresponding flags to true: * `is_admin` – if set, the user obtains access to other users' data within this admin's company. * `is_service` is a flag that marks the user account as a service accountfor automatic connection purposes. Authentication with this user creates a long-live access token (5 years by default). The token lifetime for regular uses is 15 minutes by default (parameterized) and, also by default, the lifetime of a token is extended with each request (parameterized). Here's the detailed information on access levels. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#company) Company Create Read Update Delete ADMIN + + + + OPERATOR \- + \- \- CLIENT \- their company data \- \- CLIENT SERVICE \- their company data \- \- CLIENT OPERATOR \- their company data \- \- CLIENT ADMIN \- their company data their company data their company data #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#folder) Folder Create Read Update Delete ADMIN + + + + OPERATOR + + + \- CLIENT their folders their folders their folders \- CLIENT SERVICE within their company within their company within their company \- CLIENT OPERATOR within their company within their company within their company \- CLIENT ADMIN within their company within their company within their company within their company #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#report-template) Report template Create Read Update Delete ADMIN + + + + OPERATOR + + + \- CLIENT \- within their company \- \- CLIENT SERVICE \- within their company \- \- CLIENT OPERATOR within their company within their company within their company \- CLIENT ADMIN within their company within their company within their company within their company #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#report-template-attachments) Report template attachments Create Read Delete ADMIN + + + OPERATOR + + \- CLIENT \- within their company \- CLIENT SERVICE \- within their company \- CLIENT OPERATOR within their company within their company \- CLIENT ADMIN within their company within their company within their company #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#report) Report Create Read Delete ADMIN + + + OPERATOR + + \- CLIENT in their folders in their folders \- CLIENT SERVICE within their company within their company \- CLIENT OPERATOR within their company within their company \- CLIENT ADMIN within their company within their company within their company #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#analysis) Analysis Create Read Update Delete ADMIN + + + + OPERATOR + + + \- CLIENT in their folders in their folders \- \- CLIENT SERVICE within their company within their company within their company \- CLIENT OPERATOR within their company within their company within their company \- CLIENT ADMIN within their company within their company within their company within their company #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#collection) Collection Create Read Update Delete ADMIN + + + + OPERATOR \- + \- \- CLIENT \- within their company \- \- CLIENT SERVICE within their company within their company \- \- CLIENT OPERATOR \- within their company \- \- CLIENT ADMIN within their company within their company within their company within their company #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#person) Person Create Read Delete ADMIN + + + OPERATOR \- + \- CLIENT \- within their company \- CLIENT SERVICE within their company within their company \- CLIENT OPERATOR \- within their company \- CLIENT ADMIN within their company within their company within their company #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#person-image) Person image Create Read Delete ADMIN + + + OPERATOR \- + \- CLIENT \- within their company \- CLIENT SERVICE \- within their company \- CLIENT OPERATOR \- within their company \- CLIENT ADMIN within their company within their company within their company #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/user-roles#user) User Create Read Update Delete ADMIN + + + + OPERATOR \- + their data \- CLIENT \- their data their data \- CLIENT SERVICE \- within their company their data \- CLIENT OPERATOR \- within their company their data \- CLIENT ADMIN within their company within their company within their company within their company [PreviousSystem Objectschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/system-objects) [NextTypes of Analyses and What They Checkchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/types-of-analyses-and-what-they-check) Last updated 10 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Changelog | Oz Knowledge #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#id-6.4.2-18-feb.-12-2026) 6.4.2-18 – Feb. 12, 2026 * **Breaking changes:** if you use S3, set `OZ_STATIC_S3_BUCKET_URL="None"` to avoid breaking of the S3 connection. * You can now add container to the existing folder using the `POST api/folders/{folder_id}/media` method. * Improved performance of the **Collection** analysis. * You can now trim a video if it is too long. Set the `OZ_FFMPEG_VIDEO_CROPPING_ENABLED` parameter to `true` to enable automatic trimming of videos longer than `OZ_VIDEO_DURATION_MAX`. If a video is trimmed, the corresponding records will be added to logs. * If a container cannot be processed (error 14), we now save the corresponding order’s data to ease investigation. * If a container is considered invalid, API logs now include the corresponding `folder_id` to simplify the search. * Fixed folder deletion in local-local and local-s3 configurations to properly remove static files. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#id-6.4.1-40-dec.-24-2025) 6.4.1-40 – Dec. 24, 2025 * Implemented a new proprietary data format: OzCapsula Data Container. * Resolved the issue with occasional false rejections using videos received from Web SDK. * The **Collection** analysis now ignores images tagged with `photo_id_back`. * Internal improvements. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#id-6.4.0-nov.-24-2025) 6.4.0 – Nov. 24, 2025 circle-info Only for SaaS. * Updated API to support upcoming features. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#id-6.3.5-nov.-03-2025) 6.3.5 – Nov. 03, 2025 * Fixed bugs that could cause the `GET /api/folders/` request to return incorrect results. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#id-6.3.4-oct.-20-2025) 6.3.4 – Oct. 20, 2025 * Updated API to support upcoming features. * Fixed bugs. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#id-6.3.3-sept.-29-2025) 6.3.3 – Sept. 29, 2025 * Resolved an issue with `POST /api/instant/folders/` and `POST /api/folders/` returning “500 Internal Server Error” when the video sent is corrupted. Now system returns “400 Bad Request”. * Updated API to support upcoming features. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#id-6.3.0-aug-05-2025) 6.3.0 – Aug 05, 2025 * **Updated API 6 to support Kazakhstan regulatory requirements**: added the functionality of extracting action shots from videos of a person performing gestures. * You can remove admin rights from a CLIENT ADMIN user and change their role to CLIENT via `PATCH /api/users/{{user_id}}`. * You can generate a service token for a user with the OPERATOR role. * Security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh) 6.2.5 – June 18, 2025 * Optimization and performance updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-1) 6.2.3 – June 02, 2025 * Analyses can now be done in parallel with each other. To enable this feature, add the `OZ_ANALYSE_PARALLELED_CHECK_MEDIA_ENABLED` parameter to `config.py` and set it to `true` (the default value is `false`). * For the instant mode, authorization can be disabled. Add the `OZ_AUTHORIZE_DISABLED_STATELESS` parameter to `config.py` and set it to `true` (the default value is `false`) to use instant API without authorization. * Fixed the issue with MP4 videos that sometimes could not be played after downloading from SDK. * We now return the correct error for the non-authorized requests. * Fixed the bug with “spontaneous” error 500 that had been caused by too few frames in video. Added the check for the number of frames and more descriptive error messages. * Performance, security, and installation updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-2) 6.0.1 – Apr. 30, 2025 Please note: this version doesn't support the Kazakhstan regulatory requirements. * Optimized storage and database. * Implemented the [single request mode](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/single-request) which involves creating a folder and executing analyses in a single request by attaching a part of the analysis in the payload. * Implemented the [instant analysis mode](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/instant-api-non-persistent-mode) without storing any data locally or in database. This mode can be used either with or without other API components. * You can now combine working systems based on asynchronous method or celery worker (local processing, celery processing). Added S3 storage mechanics for each of the combinations. * Implemented security updates. * We no longer support RAR archives. * We no longer support Active Directory. This functionality will be returned in the upcoming releases. * Improved mechanics for calculating analysis time. * Replaced the `is_admin` and `is_service` flags for the CLIENT role with new roles: CLIENT ADMIN and CLIENT SERVICE, respectively. Set the roles in `user_type`. * To issue a service token for a user via `{{host}}/api/authorize/service_token/`, this user must have the CLIENT SERVICE role. You can also create a token for another user with this role: call `{{host}}/api/authorize/service_token/{user_id}`. * Removed collection and person attributes from `COLLECTION.analysis`. * We no longer store separate objects for each frame in `SHOTS_SET`. If you want to save an image from your video, consider enabling [best shot](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/basic-scenarios/liveness/best-shot) . * We no longer support Podman for installation. * Updated the API reference: [Oz API 6.0arrow-up-right](https://apidoc.ozforensics.com/) . * Changed endpoints and parameters: Deprecated Endpoint or Parameter Replacement `PATCH users/{{user_id}}/` to change user password `POST /api/users/{{user_id}}/change-password` `DELETE images|media/` to delete an image of a person from collection `DELETE collections//persons//images//` `image_id`, `video_id`, and `shots_set_id` `media_id` `analyse_id` `analysis_id` `can_start_analyse_biometry` `can_start_analysis_biometry` `can_start_analyse_collection` `can_start_analysis_collection` `can_start_analyse_documents` `can_start_analysis_documents` `can_start_analyse_quality` `can_start_analysis_quality` `expire_date` in `{{host}}/api/authorize/auth` and `{{host}}/api/authorize/refresh` `access_token.exp` from payload `session_id` in `{{host}}/api/authorize/auth` and `{{host}}/api/authorize/refresh` `token_id` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-3) 5.3.1 – Dec. 24, 2024 * Improved the resource efficiency of server-based biometry analysis. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-4) 5.3.0 – Nov. 27, 2024 * API can now extract action shots from videos of a person performing gestures. This is done to comply with the new Kazakhstan regulatory requirements for biometric identification. * Created a new report template that also complies with the requirements mentioned above. * If action shots are enabled, the thumbnails for the report are generated from them. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-5) 5.2.0 – Sept. 06, 2024 * Updated the Postman collection. Please see the new collection [here](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#id-5.2) and at [https://apidoc.ozforensics.com/arrow-up-right](https://apidoc.ozforensics.com/) . * Added the new method to check the timezone settings: `GET {{host}}/api/config` * Added parameters to the `GET {{host}}/api/event_sessions` method: * `time_created` * `time_created.min` * `time_created.max` * `time_updated` * `time_updated.min` * `time_updated.max` * `session_id` * `session_id.exclude` * `sorting` * `offset` * `limit` * `total_omit` * If you create a folder using SHOT\_SET, the corresponding video will be in `media.video_url`. * Fixed the bug with CLIENT ADMIN being unable to change passwords for users from their company. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-6) 5.1.1 – July 16, 2024 * Security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-7) 5.1.0 – Mar. 20, 2024 * Face Identification 1:N is now live, significantly increasing the data processing capacity of the Oz API to find matches. Even huge face databases (containing millions of photos and more) are no longer an issue. * The Liveness (QUALITY) analysis now ignores photos tagged with `photo_id`, `photo_id_front`, or `photo_id_back`, preventing these photos from causing the tag-related analysis error. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-8) 5.0.1 – July 16, 2024 * Security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-9) 5.0.0 – Nov. 17, 2023 * You can now apply the Liveness (QUALITY) analysis to a single image. * Fixed the bug where the Liveness analysis could finish with the SUCCESS result with no media uploaded. * The default value for the `extract_best_shot` parameter is now True. * RAR archives are no longer supported. * By default, `analyses.results_media.results_data` now contain the `confidence_spoofing` parameter. However, if you need all three parameters for the backward compatibility, it is possible to change the response back to three parameters: `confidence_replay`, `confidence_liveness`, and `confidence_spoofing`. * Updated the default PDF report template. * The name of the PDF report now contains `folder_id`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-10) 4.0.8-patch1 – July 16, 2024 * Security updates. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-11) 4.0.8 – May 22, 2023 * Set the autorotation of logs. * Added the CLI command for user deletion. * You can now switch off the video preview generation. * The ADMIN access token is now valid for 5 years. * Added the folder identifier `folder_id` to the report name. * Fixed bugs and optimized the API work. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-12) 4.0.2 – Sept. 13, 2022 * For the sliced video, the system now deletes the unnecessary frames. * Added new methods: GET and POST at `media//snapshot/`. * Replaced the default report template. * The shot set preview now keeps images’ aspect ratio. * ADMIN and OPERATOR receive `system_company` as a company they belong to. * Added the `company_id` attribute to User, Folder, Analyse, Media. * Added the Analysis `group_id` attribute. * Added the `system_resolution` attribute to Folder and Analysis. * The analysis `resolution_status` now returns the `system_resolution` value. * Removed the PATCH method for collections. * Added the `resolution_status` filter to Folder Analyses \[LIST\] and `analyse.resolution_status` filter to Folder \[LIST\]. * Added the audit log for Folder, User, Company. * Improved the company deletion algorithm. * Reforged the blacklist processing logic. * Fixed a few bugs. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-13) 3.33.0 * The Photo Expert and KYC modules are now removed. * The endpoint for the user password change is now `POST` users/user\_id/change-password instead of `PATCH`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-14) 3.32.1 * Provided log for the Celery app. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-15) 3.32.0 * Added filters to the Folder \[LIST\] request parameters: `analyse.time_created`, `analyse.results_data` for the Documents analysis, `results_data` for the Biometry analysis, `results_media_results_data` for the QUALITY analysis. To enable filters, set the `with_results_media_filter` query parameter to `True`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lit7e6vfzfmh-16) 3.31.0 * Added a new attribute for users – `is_active` (default `True`). If `is_active == False`, any user operation is blocked. * Added a new exception code (1401 with status code 401) for the actions of the blocked users. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.1ukr1nhgtu2h) 3.30.0 * Added shots sets preview. * You can now save a shots set archive to a disk (with the `original_local_path`, `original_url` attributes). * A new original\_info attribute is added to store md5, size, and mime-type of a shots set * Fixed `ReportInfo` for shots sets. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.57go6yeagtyv) 3.29.0 * Added health check at GET `api/healthcheck.` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lx44qi3ojpq4) 3.28.1 * Fixed the shots set thumbnail URL. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.v3026llghh84) 3.28.0 * Now, the first frame of shots set becomes this shots set's thumbnail URL. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.f1zm0vp7rjxj) 3.27.0 * Modified the retry policy – the default max count of analysis attempts is increased to 3 and jitter configuration introduced. * Changed the callback algorithm. * Refactored and documented the command line tools. * Refactored modules. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.hq5qdij1begy) 3.25.0 * Changed the delete personal information endpoint and method from `delete_pi` to `/pi` and from POST to DELETE, respectively. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.7jpn8ypehdkf) 3.23.1 * Improved the delete personal information algorithm. * It is now forbidden to add media to cleaned folders. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.5oaf0kic55jm) 3.23.0 * Changed the authorize/restore endpoint name from `auth` to `auth_restore`. * Added a new tag – `video_selfie_oneshot`. * Added the password validation setting (`OZ_PASSWORD_POLICY`). * Added `auth`, `rest_unauthorized`, `rps_with_token` throttling (use `OZ_THROTTLING_RATES` in configuration. Off by default). * User permissions are now used to access static files (`OZ_USE_PERMISSIONS_FOR_STATIC` in configuration, false by default). * Added a new folder endpoint – `/delete_pi`. It clears all personal information from a folder and analyses related to this folder. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.xmbuocnsbw7c) 3.22.2 * Fixed a bug with no error while trying to synchronize empty collections. * If persons are uploaded, the analyse collection TFSS request is sent. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.7n524iv30eea) 3.22.0 * Added the `fields_to_check` parameter to document analysis (by default, all fields are checked). * Added the `double_page`\_spread parameter to document analysis (`True` by default). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.s4bkrryds81f) 3.21.3 * Fixed collection synchronization. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.ybp5fis7hif) 3.21.0 * Authorization token can be now refreshed by `expire_token`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.62a04f5hjp51) 3.20.1 * Added support for application/x-gzip. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.46z6l4i4zxul) 3.20.0 * Renamed shots\_set.images to shots\_set.frames. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.y2sn9t8vn4gy) 3.18.0 * Added user sessions API. * Users can now change a folder owner (limited by permissions). * Changed dependencies rules. * Changed the access\_token prolongation policy to fix bug of prolongation before checking the expiration permission. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.jrmvqtdm8sri) 3.16.0 * Move `oz_collection_binding` (collection synchronization functional) to `oz_core`. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.vuhxpkscwrom) 3.15.3 * Simplified the shots sets functionality. One archive keeps one shot set. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.xz5jhmky5tni) 3.15.2 * Improved the document sides recognition for the docker version. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.p7wrd2xevglo) 3.15.1 * Moved the orientation tag check to liveness at quality analysis. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.17hmnlitpctq) 3.15.0 * Added a default report template for Admin and Operator. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.812yocde4qsx) 3.14.0 * Updated the biometric model. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.hzhtfp3fbebk) 3.13.2 * A new ShotsSet object is not created if there are no photos for it. * Updated the data exchange format for the documents' recognition module. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.3n9rtd9zj6j9) 3.13.1 * You can’t delete a Collection if there are associated analyses with Collection Persons. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.yukywxfunm2n) 3.13.0 * Added time marks to analysis: `time_task_send_to_broker`, `time_task_received`, `time_task_finished.` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.lhumgvizng1f) 3.12.0 * Added a new authorization engine. You can now connect with Active Directory by LDAP (settings configuration required). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.kevln9zcv2sg) 3.11.0 * A new type of media in Folders – "shots\_set". * You can’t delete a CollectionPerson if there are analyses associated with it. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.rdxxf8z7idsg) 3.10.0 * Renamed the folder field `resolution_suggest` to `operator_status`. * Added a folder text field `operator_comment`. * The folder fields `operator_status` and `operator_comment` can be edited only by Admin, Operator, Client Service, Client Operator, and Client Admin. * Only Admin and Client Admin can delete folder, folder media, report template, report template attachments, reports, and analyses (within their company). #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.mf4sucdx592a) 3.9.0 * Fixed a deletion error: when report author is deleted, their reports get deleted as well. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.mue5vngx68ut) 3.8.1 * Client can now view only their own profile. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.m8czk7ozgmtl) 3.8.0 * Client Operator can now edit only their profile. * Client can't delete own folders, media, reports, or analyses anymore. * Client Service can now create Collection Person and read reports within their company. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.3gzq7jkbr9ei) 3.7.1 * Client, Client Admin, Client Operator have read access to users profiles only in their company. * A/B testing is now available. * Added support for expiration date header. * Added document recognition module Standalone/Dockered binding support. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/changelog#h.3fq2tdr2s1ks) 3.7.0 * Added a new role of Client Operator (like Client Admin without permissions for company and account management). * Client Admin and Client Operator can change the analysis status. * Only Admin and Client Admin (for their company) can create, update and delete operations for Collection and CollectionPerson models from now on. * Added a check for user permissions to report template when creating a folder report. * Collection creation now returns status code 201 instead of 200. [PreviousOz API Postman Collectionschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections) [NextOz API Litechevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite) Last updated 28 days ago Was this helpful? Was this helpful? sun-brightdesktopmoon sun-brightdesktopmoon --- # Monitoring | Oz Knowledge circle-info These instructions and dashboard are for Helm chart 0.10.20 and API 5.1. For monitoring, we use Prometheus and Grafana. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#step-1.-install-and-configure-prometheus) Step 1. Install and Configure Prometheus -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#configure-prometheus) Configure Prometheus If necessary, install Prometheus into your cluster using [their GitHubarrow-up-right](https://github.com/prometheus-operator/prometheus-operator) . Our charts already contain custom resources for Prometheus: `serviceMonitor`. By default, `serviceMonitor` is disabled, to enable it, set `enable: true` in `prometheus_exporters` → `serviceMonitor`. Copy prometheus_exporters: # Global parameter. If true, add prometheus exporters for apps # with the same parameter also set to true in app section enable: true # Global parameter. if true - expose metrics for apps on ingress # Check the same parameters in apps' configs addToIngress: false # Base path for metrics, e.g., metricsBasePath: /metrics/ auth: # Set HTTP Basic AUTH for metrics in ingress. Usable only if 'addToIngress' is true enable: true username: flower_user password: flowerpass # Enable serviceMonitor (Service Discovery for Prometheus) serviceMonitor: enable: true interval: 15s To ensure that Prometheus Operator spots the parameters, add the corresponding `Namespace` or `serviceMonitor` itself to the `spec` section as shown below: If you don't specify the parameters, all `Namespace` will be added: ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#verify-the-settings) Verify the Settings If everything is correct, and `serviceMonitor` has been added to the cluster, you'll see the corresponding custom resource in **Custom Resources** → **monitoring.coreos.com** → **Service Monitor**. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FtEyYWbdqis22GDXjhX5a%252F1-1.png%3Falt%3Dmedia%26token%3Da146d95d-5bd0-4a5b-9ae8-005558ae5bbc&width=768&dpr=3&quality=100&sign=48b6c7ae&sv=2) Make sure that Service Monitor contains the resources listed in the screen below: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FMc4IoXVx1UFKbxPJE64J%252F1-2.png%3Falt%3Dmedia%26token%3D29af8fb0-5d4c-45f3-91e0-dddd03dfb175&width=768&dpr=3&quality=100&sign=1f6ba897&sv=2) You can also check these resources in Prometheus itself. Proceed to **Status** and select **Targets** in the drop-down menu. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FoovPAVgg0DiL89lBJGDF%252F1-3.png%3Falt%3Dmedia%26token%3D5b9ee913-6d96-4ff9-ba91-848177b08d24&width=768&dpr=3&quality=100&sign=3d92448c&sv=2) Here is what should be seen: ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FZhe4IeZjDxkooF5vTg9N%252F1-4.png%3Falt%3Dmedia%26token%3Dbc0dde1f-2202-4e23-9e84-6f30968d8e67&width=768&dpr=3&quality=100&sign=21104ca6&sv=2) For more details on how to work with Service Monitor in Prometheus, please refer to [Prometheus Operator Documentationarrow-up-right](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/developer/getting-started.md) . [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#step-2.-configure-dashboard) Step 2. Configure Dashboard ------------------------------------------------------------------------------------------------------------------------------------------------------ 1. Proceed to our repository and find the branch that matches your chart version. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F2AjlUmv0SUrl4kRjAozK%252F2-1.png%3Falt%3Dmedia%26token%3D329e07fe-3f1b-4ec5-bd68-e51857f2ac45&width=768&dpr=3&quality=100&sign=2ffb2527&sv=2) 1. Download `Oz_dashboard_client.json`. 2. Open Grafana and, in the **Home** menu, select **Dashboards**. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F1bctYE3RnTkVreleFSkw%252F2-2.png%3Falt%3Dmedia%26token%3Dc8d427dc-b3e9-4e04-a74e-76ef67a0671d&width=768&dpr=3&quality=100&sign=236bf342&sv=2) 1. Click **New** and choose **Import** from the drop-down menu. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FBXqvjV8ylk6DJBEzBdOR%252F2-3.png%3Falt%3Dmedia%26token%3D3b8e9bc9-af31-4770-93de-c4fbaee1fe5e&width=768&dpr=3&quality=100&sign=370677cc&sv=2) 1. Select **Upload dashboard JSON file** and locate the `Oz_dashboard_client.json` file you've downloaded. Change filename or directory if neededm but this is optional. 2. Add the `prometheus` data source to obtain metrics. 3. Click **Import** and save the dashboard. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#variables) Variables ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FDNMjxHNT2db6zaJlCJ6Q%252F2-4.png%3Falt%3Dmedia%26token%3Da82e02a8-69b2-4c38-adad-6b8c1ff6d9be&width=768&dpr=3&quality=100&sign=1067a151&sv=2) * `namespace` is a label of the namespace from `:tensorflow:cc:saved_model:load_latency{clustername="$cluster"}`, * `quantile` is a quantile value for tables that require it. Possible values: 0.95, 0.5, 0.90, 0.99, 1. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#step-3.-start-monitoring) Step 3. Start Monitoring ------------------------------------------------------------------------------------------------------------------------------------------------ Below, you'll find the description of component metrics and tables, along with pre-configured alerts. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#celery) Celery #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#metrics-overview) Metrics Overview Metric Description `flower_events_total` Total number of tasks `flower_task_runtime_seconds_sum` Sum of task completion durations `histogram_quantile($quantile, sum(rate(flower_task_runtime_seconds_bucket[1m])) by (le))` Quantile for task execution based on the [quantile variable](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#variables) value `flower_events_total{type="task-failed"}` With the `type="task-failed"` label, displays the number of failed tasks #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-tables) Grafana Tables Table Description What to monitor Liveness task rate Average time of all Celery requests for Liveness * `task-received` should be roughly equal to `task-succeeded`, * shouldn't be any `task-failed` Liveness task duration Quantile for task execution 0.95 quantile should be 8 seconds or less Succeeded vs failed tasks rate Total number of Celery requests * `task-received` should be roughly equal to `task-succeeded`, * shouldn't be any `task-failed` All tasks duration (AVG) Average time of all Celery requests for all models The durations should be 6 seconds or less Queue size Message queue in Redis Queue size and the number of unacked messages Illustrative screenshots: Liveness task rate Liveness task duration Succeeded vs failed tasks rate All task duration (AVG) Queue size ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FOIBuiEj76i603KelWF86%252F3-1%2520cel.png%3Falt%3Dmedia%26token%3Db48c5421-b413-460e-a727-12d5ccfcb71f&width=768&dpr=3&quality=100&sign=8f8233d1&sv=2) `task-received` ≈ `task-succeeded, task-failed = 0` ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F3uvnX3eyeSNdScgy85CJ%252F3-2%2520cel.png%3Falt%3Dmedia%26token%3D822b134e-7b8c-4d82-9024-dcd65d31789e&width=768&dpr=3&quality=100&sign=90ed28f1&sv=2) 0.95 quantile ≤ 8 seconds ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FuqWSFKV3okYnnHUqxYEh%252F3-3%2520cel.png%3Falt%3Dmedia%26token%3Df694a973-dfdc-4f34-b213-ccaa9c36700b&width=768&dpr=3&quality=100&sign=7d4a118c&sv=2) `task-received` ≈ `task-succeeded, task-failed = 0` ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252Ff4BRAnBajcs4ttIQXtwA%252F3-4%2520cel.png%3Falt%3Dmedia%26token%3D73052bbf-7cdc-41ee-8ab3-6b500c1aa998&width=768&dpr=3&quality=100&sign=10766c23&sv=2) The durations ≤ 6 seconds ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FkKNO5BhrenIh0BqFUeNm%252F3-5%2520cel.png%3Falt%3Dmedia%26token%3D735e9c01-1293-4f34-b5ec-fdf8bd607bc5&width=768&dpr=3&quality=100&sign=ddbf37b9&sv=2) Monitor the queue size and the number of unacked messages #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-alerts) Grafana Alerts ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#redis) Redis #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#metrics-overview-1) Metrics Overview Metric Description `redis_up` `1` means Redis is working, `0` – service is down `redis_commands_total` Total number of commands in Redis `redis_commands_duration_seconds_total` Redis process duration `redis_key_size` Redis (as a message broker) queue size `redis_key_size{key="unacked"}` With the `"inacked"` label, displays the number of tasks that are being processed by Redis #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-tables-1) Grafana Tables Table Description What to monitor Command rate Number of requests per second Nothing, just to stay informed Commands duration Average and maximum command execution duration AVG < 15µs MAX < 1ms Connected clients Number of connected clients Shouldn't be 0 Illustrative screenshots: Command rate Commands duration Connected clients ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F0Ym0Do1KehaoSc9Nekwi%252F3-6%2520red.png%3Falt%3Dmedia%26token%3Da77d12b4-42ce-44ee-9ca0-994ccabd9ce8&width=768&dpr=3&quality=100&sign=30b37498&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F2Z2AcPfs8Btue0SKOxc3%252F3-7%2520red.png%3Falt%3Dmedia%26token%3Dc22c8462-5910-4136-ac6b-b0a72dc1cc52&width=768&dpr=3&quality=100&sign=7a993311&sv=2) AVG < 15µs, MAX < 1ms ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FS0MwMK4uxXUaTKzP9TZd%252F3-8%2520red.png%3Falt%3Dmedia%26token%3D67f06a71-e626-4b1d-bb2f-7bedb5febe93&width=768&dpr=3&quality=100&sign=d8ce35a5&sv=2) `Shouldn't be 0` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-alerts-1) Grafana Alerts ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#tfss) TFSS #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#metrics-overview-2) Metrics Overview Metric Description `:tensorflow:serving:request_count` Total number of requests to TFSS `:tensorflow:serving:request_latency_bucket` Histogram of order processing time `:tensorflow:serving:request_latency_sum` Sum of processing durations for each order `:tensorflow:serving:request_latency_count` Total number of orders `:tensorflow:cc:saved_model:load_attempt_count` Uploaded models #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-tables-2) Grafana Tables Table Description What to monitor Model request rate Number of requests to TFSS per second and per minute Nothing, just to stay informed Model latency (`$quantile`\-quantile) 0.95 quantile of the TFSS request processing time. You can set the quantile value in [the `$quantile` variable](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#variables) Nothing, just to stay informed Model latency (AVG) Average order processing time Nothing, just to stay informed HTTP probe success The result of the built-in blackbox check. Blackbox sends requests to verify that TFSS works properly Should be 1 Illustrative screenshots: Model request rate Model latency (0.95-quantile) Model latency (AVG) HTTP probe success ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F4cv4zRJGDHbELMaqvAOj%252F3-9%2520tfss.png%3Falt%3Dmedia%26token%3D2a6cb042-400c-433a-85ec-731f3887174e&width=768&dpr=3&quality=100&sign=b29250b5&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FmCC2EKpiqcHikQQCarOx%252F3-10%2520tfss.png%3Falt%3Dmedia%26token%3D02701561-e704-4876-a35b-d6d92a79bc76&width=768&dpr=3&quality=100&sign=ca8727dd&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252F1xNyyJ5hjMOiN2rS0FpM%252F3-11%2520tfss.png%3Falt%3Dmedia%26token%3Dacc01f66-f99a-494e-85fd-73f830ad243d&width=768&dpr=3&quality=100&sign=b291f8c7&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FHOO20IdgfPoPziDyXQSt%252F3-12%2520tfss.png%3Falt%3Dmedia%26token%3D823e7bb8-1ce3-4549-afa3-74b0b35cdb4f&width=768&dpr=3&quality=100&sign=9b2e3fd&sv=2) Should be 1 #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-alerts-2) Grafana Alerts ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#nginx) Nginx #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#metrics-overview-3) Metrics Overview Metric Description `nginx_up` `1` means Nginx is working, `0` – service is down `nginx_connections_accepted` Number of connections accepted by Nginx `nginx_connections_handled` Number of connections handled by Nginx `nginx_connections_active` Number of active Nginx connections #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-tables-3) Grafana Tables Table Description What to monitor Request rate Total number of requests to Nginx Nothing, just to stay informed Active connections Connection states Shouldn't be any pending connections Processed connections rate Processing success rate Numbers of accepted and handled connections should be equal Illustrative screenshots: Request rate Active connections Processed connections rate ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FRgAHfm2GHSy6VbbLMZXm%252F3-13%2520nginx.png%3Falt%3Dmedia%26token%3D9289c487-869e-4ad8-b4ac-037baa369941&width=768&dpr=3&quality=100&sign=65f80716&sv=2) ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FqUqiU5j7WbeezXOy5RR3%252F3-14%2520nginx.png%3Falt%3Dmedia%26token%3De38e27e2-08b2-4805-ba75-432c63f8c69f&width=768&dpr=3&quality=100&sign=e87ada42&sv=2) Shouldn't be any pending connections ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FwFzZjQJrCKZUZeLSlqbY%252F3-15%2520nginx.png%3Falt%3Dmedia%26token%3D69e7a2a5-2d8a-46d4-aa0a-6c4fddce44ef&width=768&dpr=3&quality=100&sign=949b27c4&sv=2) Numbers of accepted and handled connections should be equal #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-alerts-3) Grafana Alerts ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#api) API #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#metrics-overview-4) Metrics Overview Metric Description `absent(kube_pod_container_status_ready{container="oz-api", namespace="api-prod"}` Displays that there is no ready API containers #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#grafana-alerts-4) Grafana Alerts You can customize the alerts according to your needs. Please proceed to [our repositoryarrow-up-right](https://gitlab.com/oz-forensics/public/oz-engineering-monitoring-configs/-/tree/helm-0.10.20/alerts?ref_type=heads) to find the alert files. [PreviousPublishing API Methods in the Internet: Security Recommendationschevron-left](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/publishing-api-methods-in-the-internet-security-recommendations) [NextLicense Serverchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/license-server) Last updated 2 days ago Was this helpful? * [Step 1. Install and Configure Prometheus](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#step-1.-install-and-configure-prometheus) * [Configure Prometheus](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#configure-prometheus) * [Verify the Settings](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#verify-the-settings) * [Step 2. Configure Dashboard](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#step-2.-configure-dashboard) * [Step 3. Start Monitoring](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#step-3.-start-monitoring) * [Celery](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#celery) * [Redis](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#redis) * [TFSS](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#tfss) * [Nginx](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#nginx) * [API](https://doc.ozforensics.com/oz-knowledge/guides/administrator-guide/monitoring#api) Was this helpful? sun-brightdesktopmoon Copy spec: serviceMonitorNamespaceSelector: matchNames: - default - monitoring Copy spec: serviceMonitorNamespaceSelector: {}   serviceMonitorSelector: {} Copy - name: Celery alerts rules: # An alert for 0.9 quantile of task duration, warns that analyses are running slowly - alert: Quality Analysis is slow! expr: histogram_quantile(0.9, sum without (handler) (rate(flower_task_runtime_seconds_bucket{task="oz_core.tasks.tfss.process_analyse_quality"}[5m]))) > 5 for: 10m labels: severity: warning annotations: summary: "Too long duration of celery worker for TFSS task" description: "The duration of 90% Quality analyses is longer than {{ $value }} seconds for last 10 minutes. NAMESPACE: {{ $labels.namespace }} POD: {{ $labels.pod }} TASK: {{ $labels.task }} WORKER: {{ $labels.worker }}" # An alert for failed tasks, if the number is growing, something goes wrong - alert: Celery tasks failed! expr: sum by(type,task) (rate(flower_events_total{type="task-failed", task!=""}[1m])) > 0 for: 1m labels: severity: warning annotations: summary: "Celery tasks {{ $labels.task }} failed" description: 'Failed celery tasks rate: {{ printf "%.2f" $value }} rps' # A critical alert that warns that all the tasks are failed; it means that the system has stopped processing requests - alert: Celery zero success tasks! expr: sum by(type,task) (rate(flower_events_total{type="task-succeeded", task!=""}[1m])) == 0 and on (task) sum by(type,task) (rate(flower_events_total{type="task-received", task!=""}[1m])) > 0 for: 5m labels: severity: critical annotations: summary: "Celery has zero success tasks: {{ $labels.task }}!" description: "Critical! Check if bio is alive!" Copy - name: Redis alerts rules: # A critical alert that warns about Redis being down - alert: Redis is down expr: redis_up != 1 for: 30s labels: severity: critical annotations: summary: "Redis is down for more than 30 seconds!" description: "Critical: REDIS service is down in namespace: {{ $labels.namespace }}\nPod: {{ $labels.pod }}!" # Displays if Redis rejects connections - alert: Redis rejected connections expr: rate(redis_rejected_connections_total[1m]) > 0 for: 1m labels: severity: warning annotations: summary: "Redis rejects connections for more than 1 minute in namespace: {{ $labels.namespace }}!" description: "Some connections to Redis have been rejected!\nPod: {{ $labels.pod }}\nValue = {{ $value }}" # Displays that Redis commands are being executed too slow - alert: Redis command duration is slow! expr: max by(namespace) (rate(redis_commands_duration_seconds_total[1m])) > 0.0004 for: 1m labels: severity: warning annotations: summary: "Redis max command duration is too high for more than 1 minute in namespace: {{ $labels.namespace }}!" description: "Maximum command duration is longer than average!\nValue = {{ $value }} seconds"   # Warns that the Redis queue is too long - alert: Redis queue length       expr: sum by (instance)(redis_key_size) > 50       for: 1m       labels:         severity: warning       annotations:         summary: "Redis queue size is too large!"         description: "Warning: Redis queue size : {{ $value }} for the last 1 min!" # Warns that there are more than 10 processing (unacked) messages in the Redis queue     - alert: Redis unacked masseges       expr: sum by (key)(redis_key_size{key="unacked"}) > 10       for: 1m       labels:         severity: warning       annotations:         summary: "Redis has unacked messages!"         description: "Warning: Redis has {{ $value }} unacked messages!" Copy - name: TFSS alerts rules: # Critical alert that warns about blackbox detecting incorrect model behavior - alert: TFSS models probe service alert! expr: probe_success{job="blackbox-tfss-service"} != 1 for: 3m labels: severity: critical annotations: summary: "TFSS model in namespace {{ $labels.namespace }} is unavailable!" description: "!!!ALERT!!! TFSS model or server doesn't work:\nMODEL:{{ $labels.model }}\nModel probe has been returning failed state for 3 min!" - alert: TFSS models probe pod alert! expr: probe_success{job="blackbox-tfss-models"} != 1 for: 3m labels: severity: critical annotations: summary: "TFSS model in namespace {{ $labels.namespace }} is unavailable!" description: "TFSS in pod {{ $labels.pod }} doesn't work:\nMODEL:{{ $labels.model }}\nModel probe has been returning failed state for 3 min!" - alert: TFSS predict probe pod alert! expr: probe_success{job="blackbox-tfss-probe"} != 1 for: 3m labels: severity: critical annotations: summary: "TFSS model predict in namespace {{ $labels.namespace }} is unavailable!" description: "TFSS in pod {{ $labels.pod }} doesn't work:\nMODEL:{{ $labels.model }}\nPredict probe has been returning failed state for 3 min!" # Critical alert that warns about TFSS not processing requests - alert: TFSS empty request rate! expr: absent(:tensorflow:serving:request_count{namespace="api-prod"}) == 1 for: 1m labels: severity: critical annotations: summary: "TFSS request rate is empty!!!" description: "Critical! Requests are not processed, check bio!!!" Copy groups: - name: NGINX alerts rules: # A critical alert that displays that Nginx hasn't handled some of the accepted connections - alert: Nginx not all connections are handled expr: rate (nginx_connections_handled[5m]) / rate (nginx_connections_accepted[5m]) <1 for: 2m labels: severity: critical annotations: summary: "Nginx issue with handling connections" description: "Critical: Nginx doesn't handle some accepted connections on the host {{ $labels.instance }} for more than 3 minutes!" Copy groups: - name: API alerts rules: # A critical alert that warns that there are no ready API containers, so requests are not being processed - alert: Absent ready api containers! expr: absent(kube_pod_container_status_ready{container="oz-api", namespace="api-prod"} == 1) for: 1m labels: severity: critical annotations: summary: "Absent ready api containers!!!" description: "Critical! Check api containers!!!" sun-brightdesktopmoon --- # Standalone Installer | Oz Knowledge [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#what-is-standalone-installer) What Is Standalone Installer -------------------------------------------------------------------------------------------------------------------------------------------------------------------- The standalone installer is a software made to install all Oz Forensics modules to customers servers, performing all required settings related to personal topology and customer requirements. This installer is intended to deploy the software to servers directly, under the server administration user account. The direct access to the Internet can be provided or not (with some notes). Linux OS should be preinstalled with the ability to connect with full access via SSH. For installation to OpenShift and other orchestrators, please [contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#620b0c040d220d18040d10070c110b01114c010d0f) . [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#prerequisites) Prerequisites -------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#server-requirements) Server Requirements #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#oz-biometry-liveness-server) **Oz Biometry / Liveness Server** * CPU: 16 cores * RAM: 32 GB * Disk: 80 GB #### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#oz-api-web-ui-web-sdk-server) **Oz API / Web UI / Web SDK Server** * CPU: 8 cores * RAM: 16 GB * Disk: 300 GB Please check the OS version with our team. chevron-rightThe recommended OS versions with the corresponding containers[hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#the-recommended-os-versions-with-the-corresponding-containers) * Redhat 7: Docker * Redhat 8: Podman\* * Redhat 9: Podman\* * Oracle Linux 9: Podman\* * CentOS 9: Podman\* * Debian 10: Docker * Debian 12: Podman\* * Ubuntu 22.04 LTS: Podman\* * Amazon Linux 2023: Podman\* \* Please note that, by default, the Podman containers do not automatically start after system reboot. To enable automatic startup, apply this patch. You may also refer to the [Linux documentationarrow-up-right](https://linuxhandbook.com/autostart-podman-containers/) for further assistance. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#kubernetes-k8s-requirements) Kubernetes (K8s) Requirements Kubernetes version: 1.27. **Mandatory components:** * Prometheus (Helm chart version (kube-prometheus-stack) – 45.7.1), * Nginx Ingress Controller (Helm chart version – 4.7.1, please find our Helm chart repository [herearrow-up-right](https://chartmuseum.infra.ozforensics.ai/) ), * ClusterIssuers. **Optional components:** * Any Storage Class that supports the ReadWriteMany (RWX) mode. **Node resources’ requirements:** * CPU Architecture: Intel * CPU/Memory: same as described in [**Server Requirements**](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#server-requirements) . If you want to configure the values yourself, please [contact usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#036a6d656c436c79656c71666d706a60702d606c6e) . ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#preparation) Preparation 1. Request a list of clients’ URLs and the corresponding SSL certificates. 2. Check that all servers are accessible via the local network. 3. Check that access is allowed either via SSH with authorization by password or by key file and sudo without password. 4. For the installation, we recommend Docker or Podman. Alternatively, you need the Internet to download and install Docker or Podman automatically. * [Dockerarrow-up-right](https://docs.docker.com/get-docker/) version 19.03 and higher and [Docker Composearrow-up-right](https://docs.docker.com/compose/install/) version 1.27 and higher (should be installed in `/usr/sbin`); **or** * [Podmanarrow-up-right](https://podman.io/) version 4.4 and higher (with netavark and aardvark-dns modules) and podman-compose. 5. To install the balancer (only in case your installation bundle include it), we recommend installing [nginxarrow-up-right](https://www.nginx.com/resources/wiki/start/topics/tutorials/install/) (version >= 1.17.5). Additionally, SELinux should be switched to permissive mode (for CentOS and Redhat only). Alternatively, the Internet should be accessible for automatic download and installation. 6. Check the availability of license service by address https://api.cryptlex.com for servers. The client’s firewall should be opened for this address. 7. Check that AVX flags for CPU on BIO host are supported. To verify this, run the `lscpu | grep -E 'avx256|avx512' | wc -l` command. The response should be 1. 8. The client’s firewall should not block: * any running scripts or binary image supplied; * any local ports for the processes’ intercommunication (docker networks: 192.168.0.1/24, 192.168.10.0/24, 192.168.11.0/24, 192.168.12.0/24, 192.168.13.0/24); * ports 80, 8000, 8080, 8090 on the API server and port 8091 on the BIO server; * port 5432 for the additional Postgres installations. Please be ready to terminate the HTTPS connection and decrypt the traffic before forwarding it to the API server. This is typically done by a firewall or other security device. It is important that you warn our team about all non-typical and/or non-official software or services preinstalled on the host servers. [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#how-to-get-the-installer) How to Get the Installer ------------------------------------------------------------------------------------------------------------------------------------------------------------ [Requestarrow-up-right](https://ozforensics.com/#product_demo) your personal copy of the installer with the preliminary ordered product bundle for your test or production environment. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#trial-bundle) Trial bundle You can order a trial bundle for free. For this bundle, you'll need two servers meeting system requirements listed above. [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#how-to-run-the-installer) How to Run the Installer ------------------------------------------------------------------------------------------------------------------------------------------------------------ To run the installer, you need any machine with Windows or Linux matching the following system requirements: * 1 GB RAM, 1 CPU, 3 GB hard drive * Windows 10+ (recommended) * Linux 64 bit (Python 3.7 is required) Oz-Installer demonstration ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#prepare-the-installer) Prepare the Installer Download and unpack your personal installer bundle. Put the required configuration to the `settings.yml` file. The most important settings are described below. Usually, it is only required to fill the authorization and variables sections. Please note: the configuration file is your personal copy, sharing it with any 3rd side is prohibited. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#settings) Settings ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#running) Running Run the command prompt with administrator's rights. Use the `cd` command to go to the folder where the unzipped installer is located. Launch the installation. Windows: Linux: Optional parameters: * `filename` – filename with settings ('settings.yml' by default) * `private_key` – a path to the private SSH key (overwrites the appropriate option from settings file) * `key_password` – password to SSH key (if not specified, the system will ask to enter it in the console) * `ssh_password` – password for SSH login * `debug` – generate additional logging information for support Usage example: circle-info For Linux, place the private SSH key into the installer directory and set up the corresponding path in configuration: `/installer/priv_key` [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#troubleshooting) Troubleshooting ------------------------------------------------------------------------------------------------------------------------------------------ Every step of the installer echoes information to `process.log`. To report any installation issues, please, attach that file to your ticket. If the installation was interrupted by an issue, then, after the problem resolution, the process usually is allowed to continue. If it doesn't, be ready to reset servers to their original condition. You can try to solve the issue by adding the `--debug` flag to the command line of the installer. You can also [contact the Oz teamenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#460f28202906293c2029342328352f25356825292b) for details. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#use-the-putty-ppk-file-for-connection) Use the Putty ppk File for Connection You need to extract the private part of the key and then specify the path to that file in section `auth -> ssh_private_key` [![Logo](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2Fwww.tbs-certificates.co.uk%2FFAQ%2Fdefault-static%2Fglobal%2Fglobal%2Fimg%2Fcharte_tbs%2Faccueil%2Ffavicon.svg&width=20&dpr=3&quality=100&sign=5c277b57&sv=2)Convert a .ppk private key (Putty) to a base64/pem private key for OpenSSH or OpenSSLwww.tbs-certificates.co.ukchevron-right](https://www.tbs-certificates.co.uk/FAQ/en/putty-ppk-vers-openssl-openssh.html) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#docker-compose-command-not-found) docker-compose: Command Not Found This error could arise when the docker-compose tool was installed independently before the installer and default binary was set to `/usr/local/bin` For the correct work of the installer, please, make a symbolic link: [PreviousOz Modules Installationchevron-left](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation) [NextOz System Litechevron-right](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/installation-lite) Last updated 1 year ago Was this helpful? * [What Is Standalone Installer](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#what-is-standalone-installer) * [Prerequisites](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#prerequisites) * [Server Requirements](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#server-requirements) * [Kubernetes (K8s) Requirements](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#kubernetes-k8s-requirements) * [Preparation](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#preparation) * [How to Get the Installer](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#how-to-get-the-installer) * [Trial bundle](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#trial-bundle) * [How to Run the Installer](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#how-to-run-the-installer) * [Prepare the Installer](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#prepare-the-installer) * [Settings](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#settings) * [Running](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#running) * [Troubleshooting](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#troubleshooting) * [Use the Putty ppk File for Connection](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#use-the-putty-ppk-file-for-connection) * [docker-compose: Command Not Found](https://doc.ozforensics.com/oz-knowledge/other/old-docs/oz-modules-installation/standalone#docker-compose-command-not-found) Was this helpful? sun-brightdesktopmoon Copy sed -i 's/always/unless-stopped/g' /usr/lib/systemd/system/podman-restart.service systemctl daemon-reload settings.yml Copy # authorization block auth: ssh_user: # SSH user login use_sudo: yes # use SUDO as # full path to private ssh key. optional ssh_private_key: C:\\cygwin64\\home\\user\\.ssh\\id_rsa # variables block - could vary for your personal deploy bundle # please, fill up variables in your copy, don't copy from this example vars: # usually, it contains IP addresses of servers by roles api1: 130.193.58.196 api2: 178.154.232.159 bio1: 130.193.59.58 bio2: 130.193.57.151 text1: 178.154.232.69 balancer: 84.201.145.209 # also, login-password of API user with ADMIN role common-login: [email protected] common-password: 123456 # servers list. usually, it uses variable values from the block above # it is not needed to change anything manually here servers: oz-api: - $api1 - $api2 oz-api-balancer: $balancer oz-webui: - $api1 - $api2 oz-webui-balancer: oz-webadapter: - $api1 - $api2 oz-webadapter-balancer: $balancer oz-bio: - $bio1 - $bio2 oz-bio-balancer: $balancer oz-text: $text1 # if nothing is defined here, the full API configuration # will use the host of the database docker service oz-db: # precise settings block settings: # personal license key license-key: "123456-123456-123456-123456-123456-123456" # local path on each server to store configuration and data working-directory: /opt/oz # docker settings to `docker-daemon.json` docker-daemon: # address space to run containers via Docker bip: 192.168.0.1/24 # address spaces to run containers via docker-compose default-address-pools: - base: 192.168.1.0/24 size: 24 # settings for Oz API oz-api: install: yes # turn on installation of the component install-statistic: no # turn on installation of statistic submodule balancer: yes # turn on installation of balancer for component # domain name for external access to component domain_name: # SSL certificate and key for HTTPS access (optional) domain_cert: domain_key: # the local path to the host where to save media files media_path: # login/password of ADMIN preinstalled account on Oz API admin: login: $common-login password: $common-password # configuration to config.py - check details in Oz API section of knowledge base config: # network port to access component # (in case of SSL certificate installation, it is always 443) port: 80 # settings for Oz Liveness Web Adapter # settings, named the same as in the Oz API block, see above oz-webadapter: install: yes balancer: yes domain_name: domain_cert: domain_key: # https address for redirect GET request of root / # by default, demo page here redirect_url: # configuration to app_config.json config: port: 88 # settings for Oz Web UI # settings, named the same as in the Oz API block, see above oz-webui: install: yes balancer: yes domain_name: domain_cert: domain_key: # login/password for service account, is needed to synchronize database admin: login: admin password: admin # configuration to .env config: port: 80 # settings for database for Oz API oz-db: # turn on installation of Postgres on the same machine with Oz API # if "no" is chosen, then Oz API connects to external database # in that case external address external address is specified in block # servers -> oz-db install: yes # master - password for Postgres, in case of chosen installation psql_password: CHANGEME # database name database: gateway # login and password for database user_name: gateway_user user_password: CHANGEUSERPASS # Settings for Oz Bio (Liveness + Biometry) # settings, named the same as in the Oz API block, see above oz-bio: install: yes balancer: yes # settings and list of models are not intended to be modified by customer settings: models: Copy oz-installer.cmd install [parameters] Copy chmod +x oz-installer.sh ./oz-installer.sh install [parameters] Copy install.cmd filename=settings.prod.yml key_password=psyco --debug Copy ln -s /usr/local/bin/docker-compose /usr/sbin/docker-compose sun-brightdesktopmoon --- # API Lite Methods | Oz Knowledge circle-info From 1.1.0, Oz API Lite works with base64 as an input format and is also able to return the biometric templates in this format. To enable this option, add `Content-Transfer-Encoding = base64` to the request headers. ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#version-component-version-check) **version – component version check** Use this method to check what versions of components are used (available from 1.1.1). Call `GET /version` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters) Input parameters \- #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example) **Request example** `GET localhost/version` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response) **Successful response** In case of success, the method returns a message with the following parameters. HTTP response content type: “application/json”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters) **Output parameters** **Parameter name** **Type** **Description** core String API Lite core version number. tfss String TFSS version number. models \[String\] An array of model versions, each record contains model name and model version number. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example) **Response example** [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#biometry) _Biometry_ ------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#health-biometric-processor-status-check) health – biometric processor status check Use this method to check whether the biometric processor is ready to work. Call `GET /v1/face/pattern/health` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-1) Input parameters \- #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-1) **Request example** `GET localhost/v1/face/pattern/health` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-1) **Successful response** In case of success, the method returns a message with the following parameters. HTTP response content type: “application/json”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-1) **Output parameters** **Parameter name** **Type** **Description** status Int 0 – the biometric processor is working correctly. 3 – the biometric processor is inoperative. message String Message. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-1) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#extract-the-biometric-template-extraction) extract – the biometric template extraction The method is designed to extract a biometric template from an image. HTTP request content type: “image / jpeg” or “image / png” Call `POST /v1/face/pattern/extract` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-2) **Input parameters** **Parameter name** **Type** **Description** Not specified\* Stream Required parameter. Image to extract the biometric template. The “Content-Type” header field must indicate the content type. chevron-right\*[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#undefined) The name itself is not mandatory for a parameter of the Stream type. circle-info To transfer data in base64, add `Content-Transfer-Encoding = base64` to the request headers. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-2) **Request example** #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-2) **Successful response** In case of success, the method returns a biometric template. The content type of the HTTP response is “application/octet-stream”. circle-info If you've passed `Content-Transfer-Encoding = base64` in headers, the template will be in base64 as well. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-2) **Output parameters** **Parameter name** **Type** **Description** Not specified\* Stream A biometric template derived from an image chevron-right\*[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#undefined-1) The name itself is not mandatory for a parameter of the Stream type. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-2) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#compare-the-comparison-of-biometric-templates) compare – the comparison of biometric templates The method is designed to compare two biometric templates. The content type of the HTTP request is “multipart / form-data”. Call`POST /v1/face/pattern/compare` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-3) **Input parameters** **Parameter name** **Type** **Description** bio\_feature Stream Required parameter. First biometric template. bio\_template Stream Required parameter. Second biometric template. circle-info To transfer data in base64, add `Content-Transfer-Encoding = base64` to the request headers. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-3) **Request example** #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-3) **Successful response** In case of success, the method returns the result of comparing the two templates. HTTP response content type: “application/json”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-3) **Output parameters** **Parameter name** **Type** **Description** score Float The result of comparing two templates decision String Recommended solution based on the score. _approved_ – positive. The faces match. _operator\_required_ – additional operator verification is required. _declined_ – negative result. The faces don't match. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-3) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#verify-the-biometric-verification) verify – the biometric verification The method combines the two methods from above, **extract** and **compare**. It extracts a template from an image and compares the resulting biometric template with another biometric template that is also passed in the request. The content type of the HTTP request is “multipart / form-data”. Call `POST /v1/face/pattern/verify` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-4) **Input parameters** **Parameter name** **Type** **Description** sample Stream Required parameter. Image to extract the biometric template. bio\_template Stream Required parameter. The biometric template to compare with. circle-info To transfer data in base64, add `Content-Transfer-Encoding = base64` to the request headers. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-4) **Request example** #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-4) **Successful response** In case of success, the method returns the result of comparing two biometric templates and the biometric template. The content type of the HTTP response is “multipart/form-data”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-4) **Output parameters** **Parameter name** **Type** **Description** score Float The result of comparing two templates bio\_feature Stream Biometric template derived from image #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-4) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#extract_and_compare-extracting-and-comparison-of-templates-derived-from-two-images) extract\_and\_compare – extracting and comparison of templates derived from two images The method also combines the two methods from above, **extract** and **compare**. It extracts templates from two images, compares the received biometric templates, and transmits the comparison result as a response. The content type of the HTTP request is “multipart / form-data”. Call `POST /v1/face/pattern/extract_and_compare` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-5) **Input parameters** **Parameter name** **Type** **Description** sample\_1 Stream Required parameter. First image. sample\_2 Stream Required parameter. Second image circle-info To transfer data in base64, add `Content-Transfer-Encoding = base64` to the request headers. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-5) **Request example** #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-5) **Successful response** In case of success, the method returns the result of comparing the two extracted biometric templates. HTTP response content type: “application / json”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-5) **Output parameters** **Parameter name** **Type** **Description** score Float The result of comparing the two extracted templates. decision String Recommended solution based on the score. _approved_ – positive. The faces are match. _operator\_required_ – additional operator verification is required. _declined_ – negative result. The faces don't match. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-5) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#compare_n-1-n-biometric-template-comparison) compare\_n – 1:N biometric template comparison Use this method to compare one biometric template to N others. The content type of the HTTP request is “multipart/form-data”. Call `POST /v1/face/pattern/compare_n` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-6) **Input parameters** **Parameter name** **Type** **Description** template\_1 Stream This parameter is mandatory. The first (main) biometric template templates\_n Stream A list of N biometric templates. Each of them should be passed separately but the parameter name should be templates\_n. You also need to pass the filename in the header. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-6) **Request example** #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-6) **Successful response** In case of success, the method returns the result of the 1:N comparison. HTTP response content type: “application / json”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-6) **Output parameters** **Parameter name** **Type** **Description** results List\[JSON\] A list of N comparison results. The Nth result contains the comparison result for the main and Nth templates. The result has the fields as follows: \*filename String A filename for the Nth template. \*score Float The result of comparing the main and Nth templates. \*decision String Recommended solution based on the score. _approved_ – positive. The faces are match. _operator\_required_ – additional operator verification is required. _declined_ – negative result. The faces don't match. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-6) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#verify_n-1-n-biometric-verification) **verify\_n – 1:N biometric verification** The method combines the **extract** and **compare\_n** methods. It extracts a biometric template from an image and compares it to N other biometric templates that are passed in the request as a list. The content type of the HTTP request is “multipart/form-data”. Call `POST /v1/face/pattern/verify_n` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-7) **Input parameters** **Parameter name** **Type** **Description** sample\_1 Stream This parameter is mandatory. The main image. templates\_n Stream A list of N biometric templates. Each of them should be passed separately but the parameter name should be templates\_n. You also need to pass the filename in the header. circle-info To transfer data in base64, add `Content-Transfer-Encoding = base64` to the request headers. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-7) **Request example** #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-7) **Successful response** In case of success, the method returns the result of the 1:N comparison. HTTP response content type: “application / json”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-7) **Output parameters** **Parameter name** **Type** **Description** results List\[JSON\] A list of N comparison results. The Nth result contains the comparison result for the template derived from the main image and the Nth template. The result has the fields as follows: \*filename String A filename for the Nth template. \*score Float The result of comparing the template derived from the main image and the Nth template. \*decision String Recommended solution based on the score. _approved_ – positive. The faces are match. _operator\_required_ – additional operator verification is required. _declined_ – negative result. The faces don't match. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-7) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#extract_and_compare_n-1-n-template-extraction-and-comparison) **extract\_and\_compare\_n – 1:N template extraction and comparison** This method also combines the **extract** and **compare\_n** methods but in another way. It extracts biometric templates from the main image and a list of other images and then compares them in the 1:N mode. The content type of the HTTP request is “multipart/form-data”. Call `POST /v1/face/pattern/`extract\_and\_compare`_n` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-8) **Input parameters** **Parameter name** **Type** **Description** sample\_1 Stream This parameter is mandatory. The first (main) image. samples\_n Stream A list of N images. Each of them should be passed separately but the parameter name should be samples\_n. You also need to pass the filename in the header. circle-info To transfer data in base64, add `Content-Transfer-Encoding = base64` to the request headers. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-8) **Request example** #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-8) **Successful response** In case of success, the method returns the result of the 1:N comparison. HTTP response content type: “application / json”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-8) **Output parameters** **Parameter name** **Type** **Description** results List\[JSON\] A list of N comparison results. The Nth result contains the comparison result for the main and Nth images. The result has the fields as follows: \*filename String A filename for the Nth image. \*score Float The result of comparing the main and Nth images. \*decision String Recommended solution based on the score. _approved_ – positive. The faces are match. _operator\_required_ – additional operator verification is required. _declined_ – negative result. The faces don't match. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-8) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#method-errors) Method errors HTTP response content type: “application / json”. **HTTP response codes** **The value of the “code” parameter** **Description** 400 BPE-002001 Invalid Content-Type of HTTP request 400 BPE-002002 Invalid HTTP request method 400 BPE-002003 Failed to read the biometric sample\* 400 BPE-002004 Failed to read the biometric template 400 BPE-002005 Invalid Content-Type of the multiparted HTTP request part 400 BPE-003001 Failed to retrieve the biometric template 400 BPE-003002 The biometric sample\* is missing face 400 BPE-003003 More than one person is present on the biometric sample\* 500 BPE-001001 Internal bioprocessor error 400 BPE-001002 TFSS error. Call the biometry health method. chevron-right\*[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#undefined-2) A biometric sample is an input image. [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#liveness) Liveness ----------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#health-checking-the-status-of-liveness-processor) health – checking the status of liveness processor Use this method to check whether the liveness processor is ready to work. Call `GET /v1/face/liveness/health` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#input-parameters-9) Input parameters * None. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-9) **Request example** `GET localhost/v1/face/liveness/health` #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-9) **Successful response** In case of success, the method returns a message with the following parameters. HTTP response content type: “application/json”. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#output-parameters-9) **Output parameters** **Parameter name** **Type** **Description** status Int 0 – the liveness processor is working correctly. 3 – the liveness processor is inoperative. message String Message. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#response-example-9) **Response example** ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#detect-presentation-attack-detection) detect – presentation attack detection The `detect` method is made to reveal presentation attacks. It detects a face in each image or video (since 1.2.0), sends them for analysis, and returns a result. The method supports the following content types: * `image/jpeg` or `image/png` for an image; * `multipart/form-data` for images, videos, and archives. You can use `payload` to add any parameters that affect the analysis. To run the method, call `POST /{version}/face/liveness/detect`. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FNEtb7AlcQgaUFVA9VWTK%252FNew%2520liveness%2520detect.drawio.png%3Falt%3Dmedia%26token%3D88c9a3a0-03da-45f1-96b7-a4a0e12121dd&width=768&dpr=3&quality=100&sign=51d559ef&sv=2) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#image) Image Accepts an image in JPEG or PNG format. No `payload` attached. chevron-rightRequest example[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-10) chevron-rightSuccessful response example[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-example) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#multipart-form-data) Multipart/form-data Accepts the multipart/form-data request. * Each media file should have a unique name, e.g., `media_key1`, `media_key2`. * The `payload` parameters should be a JSON placed in the `payload` field. circle-info Temporary IDs will be deleted once you get the result. chevron-rightRequest example[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-11) chevron-rightSuccessful response example[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-example-1) #### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#multipart-form-data-with-best-shot) Multipart/form-data with Best Shot To extract the best shot from your video or archive, in `analyses`, set `extract_best_shot` = `true` (as shown in the request example below). In this case, API Lite will analyze your archives and videos, and, in response, will return the best shot. It will be a base64 image in `analysis->output_images->image_b64`. Additionally, you can change the Liveness threshold. In `analyses`, set the new threshold in the `threshold_spoofing` parameter. If the resulting score will be higher than this parameter's value, the analysis will end up with the DECLINED status. Otherwise, the status will be SUCCESS. chevron-rightRequest example[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#request-example-12) chevron-rightSuccessful response example[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#successful-response-example-2) chevron-rightThe `payload` field[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#the-payload-field) ### [hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#method-errors-1) Method errors HTTP response content type: “application / json”. **HTTP response codes** **The value of the “code” parameter** **Description** 400 LDE-002001 Invalid Content-Type of HTTP request 400 LDE-002002 Invalid HTTP request method 400 LDE-002004 Failed to extract the biometric sample\* 400 LDE-002005 Invalid Content-Type of the multiparted HTTP request part 500 LDE-001001 Liveness detection processor internal error 400 LDE-001002 TFSS error. Call the Liveness health method. chevron-right\*[hashtag](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#undefined-3) A biometric sample is an input image. [PreviousOz API Litechevron-left](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite) [NextOz API Lite Postman Collectionchevron-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/postman-collections) Last updated 1 year ago Was this helpful? * [version – component version check](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#version-component-version-check) * [Biometry](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#biometry) * [health – biometric processor status check](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#health-biometric-processor-status-check) * [extract – the biometric template extraction](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#extract-the-biometric-template-extraction) * [compare – the comparison of biometric templates](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#compare-the-comparison-of-biometric-templates) * [verify – the biometric verification](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#verify-the-biometric-verification) * [extract\_and\_compare – extracting and comparison of templates derived from two images](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#extract_and_compare-extracting-and-comparison-of-templates-derived-from-two-images) * [compare\_n – 1:N biometric template comparison](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#compare_n-1-n-biometric-template-comparison) * [verify\_n – 1:N biometric verification](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#verify_n-1-n-biometric-verification) * [extract\_and\_compare\_n – 1:N template extraction and comparison](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#extract_and_compare_n-1-n-template-extraction-and-comparison) * [Method errors](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#method-errors) * [Liveness](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#liveness) * [health – checking the status of liveness processor](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#health-checking-the-status-of-liveness-processor) * [detect – presentation attack detection](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#detect-presentation-attack-detection) * [Method errors](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api-lite/api-methods#method-errors-1) Was this helpful? sun-brightdesktopmoon Copy 200 OK Content-Type: application/json { 2 "core": "core_version", 3 "tfss": "tfss_version", 4 "models": [\ 5 {\ 6 "name": "model_name",\ 7 "version": "model_version"\ 8 }\ 9 ] 10} Copy 200 OK Content-Type: application/json {“status”: 0, message: “”} Copy POST localhost/v1/face/pattern/extract Content-Type: image/jpeg {Image byte stream} Copy 200 OK Content-Type: application/octet-stream {Biometric template byte stream} Copy POST localhost/v1/face/pattern/compare Content-Type: multipart/form-data; boundary=--BOUNDARY-- Content-Length: Message body length --BOUNDARY-- Content-Disposition: form-data; name=”bio_feature” Content_type: application/octet-stream {Biometric template byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”bio_template” Content_type: application/octet-stream {Biometric template byte stream} --BOUNDARY-- Copy 200 OK Content-Type: application/json {“score”: 1.0, “decision”: “approved”} Copy POST localhost/v1/face/pattern/verify Content-Type: multipart/form-data; boundary=--BOUNDARY-- Content-Length: Message body length --BOUNDARY-- Content-Disposition: form-data; name=”bio_template” Content_type: application/octet-stream {Biometric template byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”sample” Content_type: image/jpeg {Image byte stream} --BOUNDARY-- Copy 200 OK Content-Type: multipart/form-data; boundary=--BOUNDARY-- Content-Length: Message body length --BOUNDARY-- Content-Disposition: form-data; name=”score” Content_type: application/json {“score”: 1.0} --BOUNDARY-- Content-Disposition: form-data; name=”bio_feature” Content_type: application/octet-stream {Biometric template byte stream} --BOUNDARY-- Copy POST localhost/v1/face/pattern/extract_and_compare Content-Type: multipart/form-data; boundary=--BOUNDARY-- Content-Length: Message body length --BOUNDARY-- Content-Disposition: form-data; name=”sample_1” Content_type: image/jpeg {Image byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”sample_2” Content_type: image/jpeg {Image byte stream} --BOUNDARY-- Copy 200 OK Content-Type: application/json {“score”: 1.0, “decision”: “approved”} Copy POST localhost/v1/face/pattern/compare_n Content-Type: multipart/form-data; boundary=--BOUNDARY-- Content-Length: message body length --BOUNDARY-- Content-Disposition: form-data; name=”template_1” Content_type: application/octet-stream {biometric template byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”templates_n”; filename=”1.template” Content_type: application/octet-stream {biometric template byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”templates_n”; filename=”2.template” Content_type: application/octet-stream {biometric template byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”templates_n”; filename=”3.template” Content_type: application/octet-stream {biometric template byte stream} --BOUNDARY-- Copy 200 OK Content-Type: application/json {'results': [\ {'filename': '1.template', 'score': 0.0, 'decision': 'declined'}, \ {'filename': '2.template', 'score': 1.0, 'decision': 'approved'}, \ {'filename': '3.template', 'score': 0.21, 'decision': 'declined'}\ ]} Copy POST localhost/v1/face/pattern/verify_n Content-Type: multipart/form-data; boundary=--BOUNDARY-- Content-Length: message body length --BOUNDARY-- Content-Disposition: form-data; name=”sample_1” Content_type: image/jpeg {image byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”templates_n”; filename=”1.template” Content_type: application/octet-stream {biometric template byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”templates_n”; filename=”2.template” Content_type: application/octet-stream {biometric template byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”templates_n”; filename=”3.template” Content_type: application/octet-stream {biometric template byte stream} --BOUNDARY-- Copy 200 OK Content-Type: application/json {'results': [\ {'filename': '1.template', 'score': 0.0, 'decision': 'declined'}, \ {'filename': '2.template', 'score': 1.0, 'decision': 'approved'}, \ {'filename': '3.template', 'score': 0.21, 'decision': 'declined'}\ ]} Copy POST localhost/v1/face/pattern/extract_and_compare_n Content-Type: multipart/form-data; boundary=--BOUNDARY-- Content-Length: message body length --BOUNDARY-- Content-Disposition: form-data; name=”sample_1” Content_type: image/jpeg {image byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”samples_n”; filename=”1.jpeg” Content_type: image/jpeg {image byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”samples_n”; filename=”2.jpeg” Content_type: image/jpeg {image byte stream} --BOUNDARY-- Content-Disposition: form-data; name=”samples_n”; filename=”3.jpeg” Content_type: image/jpeg {image byte stream} --BOUNDARY-- Copy 200 OK Content-Type: application/json {'results': [\ {'filename': '1.jpeg', 'score': 0.0, 'decision': 'declined'}, \ {'filename': '2.jpeg', 'score': 1.0, 'decision': 'approved'}, \ {'filename': '3.jpeg', 'score': 0.21, 'decision': 'declined'}\ ]} Copy 200 OK Content-Type: application/json {“status”: 0, message: “”} Copy POST /v1/face/liveness/detect HTTP/1.1 Host: localhost Content-Type: image/jpeg Content-Length: [the size of the message body] [Image byte stream] Copy HTTP/1.1 200 OK Content-Type: application/json { "passed": false, "score": 0.999484062 } Copy POST /v1/face/liveness/detect HTTP/1.1 Host: localhost Content-Length: [the size of the message body] Content-Type: multipart/form-data; boundary=--BOUNDARY-- --BOUNDARY-- Content-Disposition: form-data; name="media_key1"; filename="video.mp4" Content-Type: multipart/form-data; [media file byte stream] --BOUNDARY-- Content-Disposition: form-data; name="payload" { "folder:meta_data": { "partner_side_folder_id": "partner_side_folder_id_if_needed", "person_info": { "first_name": "John", "middle_name": "Jameson", "last_name": "Doe" } }, "resolution_endpoint": "https://www.your-custom-endpoint.com", "media:meta_data": { "media_key1": { "foo": "bar2" } }, "media:tags": { "media_key1": [\ "video_selfie",\ "video_selfie_blank"\ ] }, "analyses": [\ {\ "type": "quality",\ "meta_data": {\ "example1": "some_example1"\ },\ "params": {\ "threshold_spoofing": 0.6,\ "extract_best_shot": false\ }\ }\ ] } --BOUNDARY-- Copy { "company_id": null, "time_created": 1720180784.769608, "folder_id": "folder_id", // temporary ID "user_id": null, "resolution_endpoint": "https://www.your-custom-endpoint.com", "resolution_status": "FINISHED", "resolution_comment": "[]", "system_resolution": "SUCCESS", "resolution_time": null, "resolution_author_id": null, "resolution_state_hash": null, "operator_comment": null, "operator_status": null, "is_cleared": null, "meta_data": { "partner_side_folder_id": "partner_side_folder_id_if_needed", "person_info": { "first_name": "John", "middle_name": "Jameson", "last_name": "Doe" } }, "technical_meta_data": {}, "time_updated": 1720180787.531983, "media": [\ {\ "folder_id": "folder_id", // temporary ID\ "media_id": "video_id", // temporary ID\ "media_type": "VIDEO_FOLDER",\ "info": {\ "thumb": null,\ "video": {\ "duration": 3.76,\ "FPS": 22.83,\ "width": 960,\ "height": 720,\ "md5": "8879b4fa9ee7add77aceb8d7d5d7b92d",\ "size": 6017119,\ "mime-type": "video/mp4"\ }\ },\ "tags": [\ "video_selfie",\ "video_selfie_blank",\ "orientation_portrait"\ ],\ "original_name": "video-5mb.mp4",\ "original_url": null,\ "company_id": null,\ "technical_meta_data": {},\ "time_created": 1719573752.78253,\ "time_updated": 1720180787.531801,\ "meta_data": {\ "foo4": "bar5"\ },\ "thumb_url": null,\ "folder_time_created": null,\ "video_id": "video_id", // temporary ID\ "video_url": null\ }\ ], "analyses": [\ {\ "analyse_id": null,\ "analysis_id": null,\ "folder_id": "folder_id", // temporary ID\ "folder_time_created": null,\ "type": "QUALITY",\ "state": "FINISHED",\ "company_id": null,\ "group_id": null,\ "results_data": null,\ "confs": {\ "threshold_replay": 0.5,\ "extract_best_shot": false,\ "threshold_liveness": 0.5,\ "threshold_spoofing": 0.42\ },\ "error_message": null,\ "error_code": null,\ "resolution_operator": null,\ "technical_meta_data": {},\ "time_created": 1720180784.769944,\ "time_updated": 1720180787.531877,\ "meta_data": {\ "some_key": "some_value"\ },\ "source_media": [\ {\ "folder_id": "folder_id", // temporary ID\ "media_id": "video_id", // temporary ID\ "media_type": "VIDEO_FOLDER",\ "info": {\ "thumb": null,\ "video": {\ "duration": 3.76,\ "FPS": 22.83,\ "width": 960,\ "height": 720,\ "md5": "8879b4fa9ee7add77aceb8d7d5d7b92d",\ "size": 6017119,\ "mime-type": "video/mp4"\ }\ },\ "tags": [\ "video_selfie",\ "video_selfie_blank",\ "orientation_portrait"\ ],\ "original_name": "video-5mb.mp4",\ "original_url": null,\ "company_id": null,\ "technical_meta_data": {},\ "time_created": 1719573752.78253,\ "time_updated": 1720180787.531801,\ "meta_data": {\ "foo4": "bar5"\ },\ "thumb_url": null,\ "folder_time_created": null,\ "video_id": "video_id", // temporary ID\ "video_url": null\ }\ ],\ "results_media": [\ {\ "company_id": null,\ "media_association_id": "video_id", // temporary ID\ "analysis_id": null,\ "results_data": {\ "confidence_spoofing": 0.000541269779\ },\ "source_media_id": "video_id", // temporary ID\ "output_images": [],\ "collection_persons": [],\ "folder_time_created": null\ }\ ],\ "resolution_status": "SUCCESS",\ "resolution": "SUCCESS"\ }\ ] } Copy POST /v1/face/liveness/detect HTTP/1.1 Host: localhost Content-Length: [the size of the message body] Content-Type: multipart/form-data; boundary=--BOUNDARY-- --BOUNDARY-- Content-Disposition: form-data; name="media_key1"; filename="video.mp4" Content-Type: multipart/form-data; [media file byte stream] --BOUNDARY-- Content-Disposition: form-data; name="payload" { "folder:meta_data": { "partner_side_folder_id": "partner_side_folder_id_if_needed", "person_info": { "first_name": "John", "middle_name": "Jameson", "last_name": "Doe" } }, "resolution_endpoint": "https://www.your-custom-endpoint.com", "media:meta_data": { "media_key1": { "foo": "bar2" } }, "media:tags": { "media_key1": [\ "video_selfie",\ "video_selfie_blank"\ ] }, "analyses": [\ {\ "type": "quality",\ "meta_data": {\ "example1": "some_example1"\ },\ "params": {\ "threshold_spoofing": 0.6,\ "extract_best_shot": true\ }\ }\ ] } --BOUNDARY-- Copy { "company_id": null, "time_created": 1720177371.120899, "folder_id": "folder_id", // temporary ID "user_id": null, "resolution_endpoint": "https://www.your-custom-endpoint.com", "resolution_status": "FINISHED", "resolution_comment": "[]", "system_resolution": "SUCCESS", "resolution_time": null, "resolution_author_id": null, "resolution_state_hash": null, "operator_comment": null, "operator_status": null, "is_cleared": null, "meta_data": { "partner_side_folder_id": "partner_side_folder_id_if_needed", "person_info": { "first_name": "John", "middle_name": "Jameson", "last_name": "Doe" } }, "technical_meta_data": {}, "time_updated": 1720177375.531137, "media": [\ {\ "folder_id": "folder_id", // temporary ID\ "media_id": "media_id", // temporary ID\ "media_type": "VIDEO_FOLDER",\ "info": {\ "thumb": null,\ "video": {\ "duration": 3.76,\ "FPS": 22.83,\ "width": 960,\ "height": 720,\ "md5": "8879b4fa9ee7add77aceb8d7d5d7b92d",\ "size": 6017119,\ "mime-type": "video/mp4"\ }\ },\ "tags": [\ "video_selfie",\ "video_selfie_blank",\ "orientation_portrait"\ ],\ "original_name": "video-5mb.mp4",\ "original_url": null,\ "company_id": null,\ "technical_meta_data": {},\ "time_created": 1719573752.781861,\ "time_updated": 1720177373.772401,\ "meta_data": {\ "foo4": "bar5"\ },\ "thumb_url": null,\ "folder_time_created": null,\ "video_id": "media_id", // temporary ID\ "video_url": null\ }\ ], "analyses": [\ {\ "analyse_id": null,\ "analysis_id": null,\ "folder_id": "folder_id", // temporary ID\ "folder_time_created": null,\ "type": "QUALITY",\ "state": "FINISHED",\ "company_id": null,\ "group_id": null,\ "results_data": null,\ "confs": {\ "threshold_replay": 0.5,\ "extract_best_shot": true,\ "threshold_liveness": 0.5,\ "threshold_spoofing": 0.42\ },\ "error_message": null,\ "error_code": null,\ "resolution_operator": null,\ "technical_meta_data": {},\ "time_created": 1720177371.121241,\ "time_updated": 1720177375.531043,\ "meta_data": {\ "some_key": "some_value"\ },\ "source_media": [\ {\ "folder_id": "folder_id", // temporary ID\ "media_id": "media_id", // temporary ID\ "media_type": "VIDEO_FOLDER",\ "info": {\ "thumb": null,\ "video": {\ "duration": 3.76,\ "FPS": 22.83,\ "width": 960,\ "height": 720,\ "md5": "8879b4fa9ee7add77aceb8d7d5d7b92d",\ "size": 6017119,\ "mime-type": "video/mp4"\ }\ },\ "tags": [\ "video_selfie",\ "video_selfie_blank",\ "orientation_portrait"\ ],\ "original_name": "video-5mb.mp4",\ "original_url": null,\ "company_id": null,\ "technical_meta_data": {},\ "time_created": 1719573752.781861,\ "time_updated": 1720177373.772401,\ "meta_data": {\ "foo4": "bar5"\ },\ "thumb_url": null,\ "folder_time_created": null,\ "video_id": "media_id", // temporary ID\ "video_url": null\ }\ ],\ "results_media": [\ {\ "company_id": null,\ "media_association_id": "media_id", // temporary ID\ "analysis_id": null,\ "results_data": {\ "confidence_spoofing": 0.000541269779\ },\ "source_media_id": "media_id", // temporary ID\ "output_images": [\ {\ "folder_id": "folder_id", // temporary ID\ "media_id": "media_id", // temporary ID\ "media_type": "IMAGE_RESULT_ANALYSIS_SINGLE",\ "info": {\ "thumb": null,\ "original": {\ "md5": "e6effeceb94e79b8cb204c6652283b57",\ "width": 720,\ "height": 960,\ "size": 145178,\ "mime-type": "image/jpeg"\ }\ },\ "tags": [],\ "original_name": "",\ "original_url": null,\ "company_id": null,\ "technical_meta_data": {},\ "time_created": 1719573752.781861,\ "time_updated": 1719573752.781871,\ "meta_data": null,\ "folder_time_created": null,\ "image_b64": "",\ "media_association_id": "media_id" // temporary ID\ }\ ],\ "collection_persons": [],\ "folder_time_created": null\ }\ ],\ "resolution_status": "SUCCESS",\ "resolution": "SUCCESS"\ }\ ] } Copy { "folder:meta_data": { "partner_side_folder_id": "partner_side_folder_id_if_needed", "person_info": { "first_name": "John", "middle_name": "Jameson", "last_name": "Doe" } }, "resolution_endpoint": "https://www.your-custom-endpoint.com", "media:meta_data": { "media_key1": { "foo": "bar2", "additional_info": "additional_info" // might affect the score }, "media_key2": { "foo2": "bar3" }, "media_key3": { "foo4": "bar5" } }, "media:tags": { "media_key1": [\ "video_selfie",\ "video_selfie_blank",\ "orientation_portrait"\ ], "media_key2": [\ "photo_selfie"\ ], "media_key3": [\ "video_selfie",\ "video_selfie_blank",\ "orientation_portrait"\ ] }, "analyses": [\ {\ "type": "quality",\ "meta_data": {\ "some_key": "some_value"\ },\ "params": {\ "threshold_spoofing": 0.42, // affects resolution\ "extract_best_shot":true // analysis will return the best shot\ }\ }\ ] } sun-brightdesktopmoon --- # How to Check Your Media for Liveness without Oz Front End | Oz Knowledge circle-exclamation Please note: we recommend using our products in combination with either the Oz Mobile or Web SDK, as they provide a wide range of essential security features. The integration example below is provided for reference only and should be used at your own discretion. Oz API is a rich Rest API for facial biometry, where you can do liveness checks and face matching. Oz API features are: * Persistence: your media and analysis are stored for future reference unless you explicitly delete it, * Ability to work with videos as well as images, * Asynchronous analyses, * Authentication, * Roles and access management. The unit of work in Oz API is a folder: you can upload interrelated media to a folder, run analyses on them, and check for the aggregated result. This step-by-step guide describes how to perform a liveness check on a facial image or video that you already have with Oz backend: create a folder, upload your media to this folder, initiate liveness check and poll for the results. ![](https://doc.ozforensics.com/oz-knowledge/~gitbook/image?url=https%3A%2F%2F2532558063-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F5g6dgsxRbyrCvB0uAf8f%252Fuploads%252FPhZwUfx72QHAOd7ySqQ0%252Fnofront-scheme.png%3Falt%3Dmedia%26token%3D8a06e1a4-dbfd-44ca-a299-acdab2a939c5&width=768&dpr=3&quality=100&sign=85a5cd8f&sv=2) For better accuracy and user experience, we recommend that you use our Web and/or Native SDK on your front end for face capturing. Please refer to the relevant guides: * [Integration of Oz Liveness Web SDK](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-web-application) , * [Integration of Oz Liveness Mobile SDK.](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-integrate-server-based-liveness-into-your-mobile-application) Before you begin, make sure you have Oz API credentials. When using SaaS API, you get them [from usenvelope](https://doc.ozforensics.com/cdn-cgi/l/email-protection#2d44434b426d42574b425f48435e444e5e034e4240) : Login: [\[email protected\]](https://doc.ozforensics.com/cdn-cgi/l/email-protection) Password: … API: https://sandbox.ohio.ozforensics.com Web Console: https://sandbox.ohio.ozforensics.com For the on-premise Oz API, you need to create a user yourself or ask your team that manages the API. See the [guide on user creation via Web Console](https://doc.ozforensics.com/oz-knowledge/guides/user-guide/oz-webui/webui-users#adding-a-user) . Consider the proper user role (`CLIENT` in most cases or `CLIENT ADMIN`, if you are going to make SDK work with the pre-created folders from other API users). In the end, you need to obtain a similar set of credentials as you would get for the SaaS scenario. You can explore all API methods with [Oz Postman collectionarrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api/postman-collections#4.0) . #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-check-your-media-for-liveness-without-oz-front-end#id-1.-get-the-access-token) 1\. Get the access token For security reasons, we recommend obtaining the access token instead of using the credentials. Call `POST /api/authorize/auth` with your login and password in the request body. Obtain `access_token` from the response and add it to the `X-Forensic-Access-Token` of all subsequence requests. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-check-your-media-for-liveness-without-oz-front-end#id-2.-convert-a-single-image-to-an-archive-for-api-4.0.8-and-below) 2\. Convert a single image to an archive (for API 4.0.8 and below) Omit this step for API 5.0.0 and above. With API 4.0.8 and below, Oz API requires video or archived sequence of images in order to perform liveness check. If you want to analyze a single image, you need to transform it into a ZIP archive. Oz API will treat this archive as a video. Make sure that you use corresponding video-related tags later on. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-check-your-media-for-liveness-without-oz-front-end#id-3.-upload-media-to-a-folder) 3\. Upload media to a folder To create a folder and upload your media into it, call `POST /api/folders/`, adding the media you need to the body part of the request. In the payload field, set the appropriate tags: The successful response will return code 201 and `folder_id` you’ll need later on. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-check-your-media-for-liveness-without-oz-front-end#id-4.-initiate-the-analysis) 4\. Initiate the analysis To launch the analysis, [callarrow-up-right](https://apidoc.ozforensics.com/#tag/Analyses/paths/~1api~1folders~1%7Bfolder_id%7D~1analyses/post) `POST /api/folders/{{folder_id}}/analyses/` with `folder_id` from the previous step. In the request body, specify the liveness check to be launched. The results will be available in a short while. The method will return `analysis_id` that you’ll need at the next step. #### [hashtag](https://doc.ozforensics.com/oz-knowledge/general/integration-quick-start-guides/server-based-liveness/how-to-check-your-media-for-liveness-without-oz-front-end#id-5.-poll-for-the-results) 5\. Poll for the results Repeat calling `GET /api/analyses/{{analysis_id}}` with the `analysis_id` from the previous step once a second until the state changes from `PROCESSING` to something else. For a finished analysis: * get the qualitative result from resolution (`SUCCESS` or `DECLINED`). * get the quantitative results from `results_media[0].results_data.confidence_spoofing`. `confidence_spoofing` ranges from 0.0 (real person) to 1.0 (spoofing). Here is the Postman collection for this guide. file-download 6KB [Oz API Check with No Front End.postman\_collection.json](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FKcoYeoaYX8FjRmgKeyii%2FOz%20API%20Check%20with%20No%20Front%20End.postman_collection.json?alt=media&token=4143ecda-887d-4ab8-87ab-5bf0e35d657b) downloadDownload[arrow-up-right-from-squareOpen](https://2532558063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5g6dgsxRbyrCvB0uAf8f%2Fuploads%2FKcoYeoaYX8FjRmgKeyii%2FOz%20API%20Check%20with%20No%20Front%20End.postman_collection.json?alt=media&token=4143ecda-887d-4ab8-87ab-5bf0e35d657b) With these steps completed, you are done with Liveness check via Oz API. You will be able to access your media and analysis results in Web UI via browser or programmatically via API. Oz API methods can be combined with great flexibility. Explore Oz API using the [API Developer Guidearrow-up-right](https://doc.ozforensics.com/oz-knowledge/guides/developer-guide/api/oz-api) . Last updated 9 months ago Was this helpful? Was this helpful? sun-brightdesktopmoon Copy { "credentials": { "email": "", // your admin access email "password": "" // the password you’ve got from us } } Copy { "media:tags": { "video1": [\ "video_selfie",\ "video_selfie_blank",\ "orientation_portrait"\ ], } } Copy { "analyses": [\ {\ "type": "quality"\ }\ ] } sun-brightdesktopmoon --- # Email Protection | Cloudflare Please enable cookies. Email Protection ================ You are unable to access this email address doc.ozforensics.com --------------------------------------------------------------- The website from which you got to this page is protected by Cloudflare. Email addresses on that page have been hidden in order to keep them from being accessed by malicious bots. **You must enable Javascript in your browser in order to decode the e-mail address**. If you have a website and are interested in protecting it in a similar way, you can [sign up for Cloudflare](https://www.cloudflare.com/sign-up?utm_source=email_protection) . * [How does Cloudflare protect email addresses on website from spammers?](https://developers.cloudflare.com/waf/tools/scrape-shield/email-address-obfuscation/) * [Can I sign up for Cloudflare?](https://developers.cloudflare.com/fundamentals/setup/account/create-account/) Cloudflare Ray ID: **9dbacc81fafad6fc** • Your IP: Click to reveal 54.237.218.47 • Performance & security by [Cloudflare](https://www.cloudflare.com/5xx-error-landing) ---