1️⃣: AWS TEXTRACT - ID OCR & ANALYZER (FRONT-END)
===========================================
📋 ELEMENT DESCRIPTION
--------------------------------
AWS TEXTRACT - ID OCR & ANALYZER provides ANALYZE ID action to extract relevant information from passports, driver licenses, and other identity documentation issued by the US Government.
The front-end element is suitable for applications when reactivity is desired, such as but not limited to, mobile applications. It supports multiple image formats and automatically optimizes images to meet AWS requirements.
🔧 STEP-BY-STEP SETUP
--------------------------------
ℹ️ The steps from 0) to 1) can be automatically performed by using this deployment template:
https://console.aws.amazon.com/cloudformation/home?#/stacks/create/review?stackName=BubbleTextractSyncOnly&templateURL=https://bubble-resources.s3.amazonaws.com/deployment-assets/CloudFormation-AWSTextractSyncOnly.yamlYou will find the required parameters values used across the plugin in the "OUTPUT" tab of the created stack.
0) Sign-up for AWS TEXTRACT by following this link:
https://console.aws.amazon.com/textract/home?p=txt&cp=bn&ad=c1) Create your AWS TEXTRACT ACCESS KEY & ACCESS KEY SECRET and attach the AWS TEXTRACT READ ONLY policy:
https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keysIf you intend to use AWS S3 URI (s3://) with your own BUCKET, attach the AWS S3 READ ONLY policy to the considered BUCKET.
2) Register on plugins.wiseable.io. Create a new Credential which associates your BUBBLE APP URL, AWS TEXTRACT ACCESS KEY & ACCESS KEY SECRET.
The registration service will generate your PUBLIC ACCESS KEY. This key serves as a secure proxy for your real API key. It allows your application to communicate with the service without exposing your real API key. Since this PUBLIC ACCESS KEY is explicitly tied to your registered BUBBLE APP URL, it can only be used from that domain, ensuring that even if the key is publicly visible, it remains safe and cannot be misused by unauthorized sources.
3) Enter in the PLUGIN SETTINGS your PUBLIC ACCESS KEY (used for this element only), AWS SERVICE ENDPOINT REGION (if not provided, the default endpoint is "us-east-1").
4) Add the AWS TEXTRACT - ID OCR & ANALYZER (FRONT-END) element to the page on which the ID analysis feature must be integrated. Select the RESULT DATA TYPE as Returned type, must always be set to "RESULT (TEXTRACT - ID OCR & ANALYZER)".
5) Integrate the logic into your application using the following AWS TEXTRACT - ID OCR & ANALYZER (FRONT-END) element's states and actions:
FIELDS:
- RESULT DATA TYPE: Returned type, must always be set to "RESULT (TEXTRACT - ID OCR & ANALYZER)".
EVENTS:
- SUCCESS: Event triggered upon success
- ERROR: Event triggered upon error
EXPOSED STATES:
Use any element able to show/process the data of interest (such as a Group with a Text field) stored within the result of the following states of the AWS TEXTRACT - ID OCR & ANALYZER (FRONT-END) element:
- RESULTS: Populated upon SUCCESS event. Returns a list of normalized ID fields, see
https://docs.aws.amazon.com/textract/latest/dg/identitydocumentfields.html- ERROR MESSAGE: Populated upon ERROR event.
- IS PROCESSING: Set to true when processing is in progress, false otherwise.
ELEMENT ACTIONS - TRIGGERED IN WORKFLOW:
- ANALYZE ID (FRONT-END): Extract relevant information from passports, driver licenses, and other identity documentation. Populate RESULTS state upon completion.
Inputs Fields:
- IMAGE: List of image files from the Bubble.io uploader, or Protocol-relative URLs (//server/file.ext), HTTPS file URLs (
https://server/file.ext) or AWS S3 URIs (s3://bucket/image.jpg). For both Protocol-relative and HTTPS URL, the file must be accessible through HTTPS Protocol.
2️⃣: ANALYZE ID (BACK-END)
==================================
📋 ACTION DESCRIPTION
--------------------------------
ANALYZE ID extracts relevant information from passports, driver licenses, and other identity documentation issued by the US Government.
The back-end action is suitable for applications when volume or asynchronous processing is desired.
🔧 STEP-BY-STEP SETUP
--------------------------------
ℹ️ If not already done, perform steps 0, 1, and 3 of the first element setup. The back-end action does not require the PUBLIC ACCESS KEY.
1) Set up the action "ANALYZE ID (BACK-END)" action in the workflow.
Input Fields:
- IMAGES URL: For a single ID: list of a single- or multi-page JPEG, PNG, PDF file URLs from the Bubble.io's Multi-File Uploader - Dropzone, or Protocol-relative URLs (//server/path/file.ext), HTTPS URLs (
https://server/path/file.ext) or AWS S3 URIs (s3://bucket/image.jpg). For both Protocol-relative and HTTPS URL, the file must be accessible through HTTPS Protocol.
- RESULT DATA TYPE: Returned type, must always be set to "RESULT (TEXTRACT - ID OCR & ANALYZER)".
Output Fields:
- RESULTS: Returns a list of normalized ID fields, see
https://docs.aws.amazon.com/textract/latest/dg/identitydocumentfields.html🔍 IMPLEMENTATION EXAMPLE
======================
Feel free to browse the app editor in the Service URL for an implementation example.
ℹ️ ADDITIONAL INFORMATION
======================
> Standard Fields details:
https://docs.aws.amazon.com/textract/latest/dg/identitydocumentfields.html> AWS TEXTRACT service limits:
https://docs.aws.amazon.com/textract/latest/dg/limits.html> AWS services availability per region:
https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/> AWS Service endpoints list:
https://docs.aws.amazon.com/general/latest/gr/rande.html⚠️ TROUBLESHOOTING
================
Any plugin related error will be posted to the Logs tab, "Server logs" section of your App Editor.
Make sure that "Plugin server side logging" and "Plugin client side logging" are selected in "Show Advanced".
For front-end actions, you can also open your browser's developer console (F12 or Ctrl+Shift+I in most browsers) to view detailed error messages and logs.
Always check the ERROR MESSAGE state of the element and implement error handling using the ERROR event to provide a better user experience.
> Server Logs Details:
https://manual.bubble.io/core-resources/bubbles-interface/logs-tab#server-logs⚡ PERFORMANCE CONSIDERATIONS
===========================
GENERAL
-------------
For back-end actions, this implementation posts the file data to AWS for non-AWS Storage URI (e.g: non-s3://). The maximum processing duration of this action is capped at 30 seconds as per Bubble.io design. This time limitation does not apply to front-end actions.
⏱️ BACK-END ACTION START DELAY
-----------------------------------------------
Each time a server-side action is called, Bubble initializes a small virtual machine to execute the action. If the same action is called shortly after, the caching mechanism kicks in, resulting in faster execution on subsequent calls.
A useful workaround is to fire a dummy execution at page load, which pre-warms the Bubble engine for the next few minutes, reducing the impact of cold starts for your users.
FRONT-END VS BACK-END PROCESSING
----------------------------------------------------
The front-end element is designed to support and optimize multiple image formats and will automatically compress images to adhere to AWS requirements. The back-end action doesn't perform this optimization, so be careful with file size and format when using it.
❓ QUESTIONS?
===========
Contact us at
bubble@wiseable.io for any additional feature you would require or support question.