Skip to content

Commit 69fb8d4

Browse files
author
regula-bot
committed
Merge remote-tracking branch 'origin/stable'
2 parents b1caef0 + 2169a40 commit 69fb8d4

38 files changed

+2411
-120
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Back Merge handler
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- stable
8+
9+
jobs:
10+
pr_master_to_stable:
11+
runs-on: ubuntu-latest
12+
if: github.ref_name == 'master'
13+
steps:
14+
- uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
18+
- name: Check if PR exists
19+
env:
20+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
run: |
22+
prs=$(gh pr list \
23+
--repo "$GITHUB_REPOSITORY" \
24+
--json baseRefName,headRefName \
25+
--jq '
26+
map(select(.baseRefName == "stable" and .headRefName == "master"))
27+
| length
28+
')
29+
if ((prs > 0)); then
30+
echo "Pull Request already exists"
31+
echo "SKIP=true" >> $GITHUB_ENV
32+
fi
33+
34+
- name: Check if stable is ahead
35+
run: |
36+
commits=$(git rev-list origin/stable..origin/master --count)
37+
if ((commits == 0)); then
38+
echo "No diffs was found between branches"
39+
echo "SKIP=true" >> $GITHUB_ENV
40+
fi
41+
42+
- name: Create Pull Request
43+
if: env.SKIP != 'true'
44+
run: gh pr create -B stable -H master --title '[GitHub Actions] Merge master -> stable' --label back-merge --body 'Autogenerated Pull Request for `back-merge` triggered by Github Actions'
45+
env:
46+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47+
48+
pr_stable_to_develop:
49+
runs-on: ubuntu-latest
50+
if: github.ref_name == 'stable'
51+
steps:
52+
- uses: actions/checkout@v4
53+
with:
54+
fetch-depth: 0
55+
56+
- name: Check if PR exists
57+
env:
58+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
59+
run: |
60+
prs=$(gh pr list \
61+
--repo "$GITHUB_REPOSITORY" \
62+
--json baseRefName,headRefName \
63+
--jq '
64+
map(select(.baseRefName == "develop" and .headRefName == "stable"))
65+
| length
66+
')
67+
if ((prs > 0)); then
68+
echo "Pull Request already exists"
69+
echo "SKIP=true" >> $GITHUB_ENV
70+
fi
71+
72+
- name: Check if stable is ahead
73+
run: |
74+
commits=$(git rev-list origin/develop..origin/stable --count)
75+
if ((commits == 0)); then
76+
echo "No diffs was found between branches"
77+
echo "SKIP=true" >> $GITHUB_ENV
78+
fi
79+
80+
- name: Create Pull Request
81+
if: env.SKIP != 'true'
82+
run: gh pr create -B develop -H stable --title '[GitHub Actions] Merge stable -> develop' --label back-merge --body 'Autogenerated Pull Request for `back-merge` triggered by Github Actions'
83+
env:
84+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/sast.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ env:
1616
# List of paths (space separated) to ignore
1717
# Supports PATTERNS
1818
# EXCLUDE_PATHS: 'foo bar/baz file.txt dir/*.yml'
19-
EXCLUDE_PATHS: ''
19+
EXCLUDE_PATHS: 'generator-templates regula/documentreader/webclient/gen'
2020
# List of rules (space separated) to ignore
2121
# EXCLUDE_RULES: 'generic.secrets.security.detected-aws-account-id.detected-aws-account-id'
2222
# See https://github.com/semgrep/semgrep-rules for rules registry

.github/workflows/trivy-scan.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,5 @@ jobs:
2323
exit-code: '1'
2424
ignore-unfixed: true
2525
severity: 'CRITICAL,HIGH,MEDIUM,LOW'
26+
env:
27+
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db:2

.openapi-generator-ignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,3 @@ README.md
1111
.gitignore
1212
setup.py
1313
regula/documentreader/webclient/__init__.py
14-
15-
regula/documentreader/webclient/gen/models/container_list.py
16-
regula/documentreader/webclient/gen/models/authenticity_check_result.py

.openapi-generator/FILES

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ regula/__init__.py
22
regula/documentreader/__init__.py
33
regula/documentreader/webclient/gen/__init__.py
44
regula/documentreader/webclient/gen/api/__init__.py
5-
regula/documentreader/webclient/gen/api/default_api.py
5+
regula/documentreader/webclient/gen/api/healthcheck_api.py
66
regula/documentreader/webclient/gen/api/process_api.py
77
regula/documentreader/webclient/gen/api/transaction_api.py
88
regula/documentreader/webclient/gen/api_client.py
@@ -13,17 +13,21 @@ regula/documentreader/webclient/gen/models/area_array.py
1313
regula/documentreader/webclient/gen/models/area_container.py
1414
regula/documentreader/webclient/gen/models/auth_params.py
1515
regula/documentreader/webclient/gen/models/authenticity_check_list.py
16+
regula/documentreader/webclient/gen/models/authenticity_check_result.py
1617
regula/documentreader/webclient/gen/models/authenticity_check_result_item.py
1718
regula/documentreader/webclient/gen/models/authenticity_result.py
1819
regula/documentreader/webclient/gen/models/authenticity_result_all_of.py
1920
regula/documentreader/webclient/gen/models/authenticity_result_type.py
2021
regula/documentreader/webclient/gen/models/bc_pdf417_info.py
2122
regula/documentreader/webclient/gen/models/bc_roidetect.py
23+
regula/documentreader/webclient/gen/models/byte_array_result.py
24+
regula/documentreader/webclient/gen/models/byte_array_result_all_of.py
2225
regula/documentreader/webclient/gen/models/check_diagnose.py
2326
regula/documentreader/webclient/gen/models/check_result.py
2427
regula/documentreader/webclient/gen/models/chosen_document_type.py
2528
regula/documentreader/webclient/gen/models/chosen_document_type_result.py
2629
regula/documentreader/webclient/gen/models/chosen_document_type_result_all_of.py
30+
regula/documentreader/webclient/gen/models/container_list.py
2731
regula/documentreader/webclient/gen/models/critical.py
2832
regula/documentreader/webclient/gen/models/cross_source_value_comparison.py
2933
regula/documentreader/webclient/gen/models/data_module.py
@@ -48,6 +52,7 @@ regula/documentreader/webclient/gen/models/document_types_candidates.py
4852
regula/documentreader/webclient/gen/models/document_types_candidates_list.py
4953
regula/documentreader/webclient/gen/models/document_types_candidates_result.py
5054
regula/documentreader/webclient/gen/models/document_types_candidates_result_all_of.py
55+
regula/documentreader/webclient/gen/models/documents_database.py
5156
regula/documentreader/webclient/gen/models/encrypted_rcl_result.py
5257
regula/documentreader/webclient/gen/models/encrypted_rcl_result_all_of.py
5358
regula/documentreader/webclient/gen/models/face_api.py
@@ -61,6 +66,8 @@ regula/documentreader/webclient/gen/models/graphic_field_type.py
6166
regula/documentreader/webclient/gen/models/graphic_fields_list.py
6267
regula/documentreader/webclient/gen/models/graphics_result.py
6368
regula/documentreader/webclient/gen/models/graphics_result_all_of.py
69+
regula/documentreader/webclient/gen/models/healthcheck.py
70+
regula/documentreader/webclient/gen/models/healthcheck_documents_database.py
6471
regula/documentreader/webclient/gen/models/ident_result.py
6572
regula/documentreader/webclient/gen/models/ident_result_all_of.py
6673
regula/documentreader/webclient/gen/models/image_data.py

example/example.py

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from regula.documentreader.webclient import *
44

55
host = os.getenv("API_BASE_PATH", "https://api.regulaforensics.com")
6-
regula_license = os.getenv("TEST_LICENSE", None) # optional, used here only for smoke test purposes
76

87
# read optional local license file
98
if os.path.isfile('regula.license') and os.access('regula.license', os.R_OK):
@@ -21,25 +20,21 @@
2120
uv_page_0 = f.read()
2221

2322
with DocumentReaderApi(host) as api:
24-
api.license = regula_license
25-
26-
params = ProcessParams(
27-
scenario=Scenario.FULL_PROCESS,
28-
result_type_output=[
29-
# actual results
30-
Result.STATUS, Result.AUTHENTICITY, Result.TEXT, Result.IMAGES,
31-
Result.DOCUMENT_TYPE, Result.DOCUMENT_TYPE_CANDIDATES, Result.IMAGE_QUALITY,
32-
Result.DOCUMENT_POSITION,
33-
# legacy results
34-
Result.MRZ_TEXT, Result.VISUAL_TEXT, Result.BARCODE_TEXT, Result.RFID_TEXT,
35-
Result.VISUAL_GRAPHICS, Result.BARCODE_GRAPHICS, Result.RFID_GRAPHICS,
36-
Result.LEXICAL_ANALYSIS
37-
]
38-
)
23+
api.api_client.default_headers = {
24+
"X-CLIENT-KEY": "123",
25+
"Authorization": "Bearer 123"
26+
}
27+
params = ProcessParams(already_cropped=True, scenario=Scenario.FULL_PROCESS)
28+
29+
# Add license to request
30+
# request = RecognitionRequest(system_info=ProcessSystemInfo(license=base64.b64encode(regula_license).decode()), process_params=params, images=[
31+
# RecognitionImage(image=white_page_0, light_index=Light.WHITE, page_index=0),
32+
# ])
33+
3934
request = RecognitionRequest(process_params=params, images=[
4035
RecognitionImage(image=white_page_0, light_index=Light.WHITE, page_index=0),
41-
RecognitionImage(image=ir_page_0, light_index=Light.IR, page_index=0),
42-
RecognitionImage(image=uv_page_0, light_index=Light.UV, page_index=0),
36+
# RecognitionImage(image=ir_page_0, light_index=Light.IR, page_index=0),
37+
# RecognitionImage(image=uv_page_0, light_index=Light.UV, page_index=0),
4338
])
4439
response = api.process(request)
4540

@@ -50,6 +45,7 @@
5045
response_status = response.status
5146
doc_overall_status = "valid" if response_status.overall_status == CheckResult.OK else "not valid"
5247

48+
5349
# text fields example
5450
doc_number_field = response.text.get_field(TextFieldType.DOCUMENT_NUMBER)
5551
doc_number_field_by_name = response.text.get_field_by_name("Document Number")
@@ -82,21 +78,16 @@
8278
f.write(portrait_from_visual)
8379
with open('document-image.jpg', 'wb') as f:
8480
f.write(document_image)
85-
86-
print("""
81+
print(f"""
8782
---------------------------------------------------------------------------
88-
Web API version: {ping_version}
83+
Web API version: {api.ping().version}
8984
---------------------------------------------------------------------------
90-
Document Overall Status: {doc_overall_status}
85+
Document Overall Status: {doc_overall_status}
9186
Document Number Visual: {doc_number_visual}
92-
Document Number MRZ: {doc_number_mrz}
93-
Validity Of Document Number Visual: {doc_number_visual_validity}
94-
Validity Of Document Number MRZ: {doc_number_mrz_validity}
95-
MRZ-Visual values comparison: {doc_number_mrz_visual_matching}
96-
---------------------------------------------------------------------------
97-
""".format(
98-
ping_version=api.ping().version,
99-
doc_overall_status=doc_overall_status, doc_number_visual=doc_number_visual,
100-
doc_number_mrz=doc_number_mrz, doc_number_visual_validity=doc_number_mrz_validity,
101-
doc_number_mrz_validity=doc_number_mrz_validity, doc_number_mrz_visual_matching=doc_number_mrz_visual_matching,
102-
))
87+
Document Type: {response.result_by_type(result_type=Result.DOCUMENT_TYPE).one_candidate.document_name}
88+
Validity Of Document Number Visual: {doc_number_visual_validity}
89+
""")
90+
91+
print("-----------------------All Text Fields------------------------")
92+
for field in response.text.field_list:
93+
print(f"Source: {field.field_name}, Value: {field.value}")

regula/documentreader/webclient/ext/api/document_reader_api.py

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
from regula.documentreader.webclient import ProcessResponse
55
from regula.documentreader.webclient.gen import ApiClient
66
from regula.documentreader.webclient.ext.models.recognition_response import RecognitionResponse
7-
from regula.documentreader.webclient.gen.api import DefaultApi, ProcessApi
7+
from regula.documentreader.webclient.gen.api import HealthcheckApi, ProcessApi
88
from regula.documentreader.webclient.gen.configuration import Configuration
99
from regula.documentreader.webclient.gen.models import ProcessRequest
1010

1111
Base64String = str
1212

1313

14-
class DocumentReaderApi(DefaultApi, ProcessApi):
14+
class DocumentReaderApi(HealthcheckApi, ProcessApi):
1515

1616
def __init__(self, host=None, debug=False, verify_ssl=True, api_client=None):
1717
if api_client:
@@ -20,13 +20,9 @@ def __init__(self, host=None, debug=False, verify_ssl=True, api_client=None):
2020
configuration = Configuration(host=host)
2121
configuration.debug = debug
2222
configuration.verify_ssl = verify_ssl
23-
2423
self.api_client = ApiClient(configuration=configuration)
25-
2624
super().__init__(self.api_client)
2725

28-
self.__license = None
29-
3026
def __enter__(self):
3127
return self
3228

@@ -36,19 +32,7 @@ def __exit__(self, exc_type, exc_val, exc_tb):
3632
def set_configuration(self, configuration) -> None:
3733
self.api_client.configuration = configuration
3834

39-
@property
40-
def license(self) -> Base64String:
41-
return self.__license
42-
43-
@license.setter
44-
def license(self, value: Union[Base64String, bytes]):
45-
if isinstance(value, bytes):
46-
self.__license = base64.b64encode(value).decode("utf-8")
47-
else:
48-
self.__license = value
49-
5035
def process(self, process_request: ProcessRequest) -> RecognitionResponse:
51-
process_request.system_info.license = self.license
5236
return RecognitionResponse(self.api_process(process_request))
5337

5438
def deserialize_to_recognition_response(self, content: Union[bytes, bytearray, str]) -> RecognitionResponse:

regula/documentreader/webclient/ext/models/recognition_request.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,11 @@ def __init__(self, _encrypted_rcl: Union[bytes, Base64String] = None,
6161

6262
class RecognitionRequest(ProcessRequest):
6363
def __init__(
64-
self, process_params: ProcessParams,
64+
self,
65+
process_params: ProcessParams,
6566
images: List[Union[RecognitionImage, bytes, Base64String]] = None,
66-
container_list: ContainerList = None, tag=None
67+
container_list: ContainerList = None, tag=None,
68+
system_info: ProcessSystemInfo = ProcessSystemInfo(),
6769
):
6870
input_images = []
6971
if images:
@@ -73,13 +75,17 @@ def __init__(
7375
else:
7476
input_images.append(image)
7577
super().__init__(
76-
process_param=process_params, list=input_images,
77-
system_info=ProcessSystemInfo(), tag=tag
78+
process_param=process_params,
79+
list=input_images,
80+
system_info=system_info,
81+
tag=tag
7882
)
7983
if container_list:
8084
super().__init__(
81-
process_param=process_params, container_list=container_list,
82-
system_info=ProcessSystemInfo(), tag=tag
85+
process_param=process_params,
86+
container_list=container_list,
87+
system_info=system_info,
88+
tag=tag
8389
)
8490

8591
@property

regula/documentreader/webclient/gen/__init__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
__version__ = "1.0.0"
1212

1313
# import apis into sdk package
14-
from regula.documentreader.webclient.gen.api.default_api import DefaultApi
14+
from regula.documentreader.webclient.gen.api.healthcheck_api import HealthcheckApi
1515
from regula.documentreader.webclient.gen.api.process_api import ProcessApi
1616
from regula.documentreader.webclient.gen.api.transaction_api import TransactionApi
1717

@@ -36,6 +36,8 @@
3636
from regula.documentreader.webclient.gen.models.authenticity_result_type import AuthenticityResultType
3737
from regula.documentreader.webclient.gen.models.bc_pdf417_info import BcPDF417INFO
3838
from regula.documentreader.webclient.gen.models.bc_roidetect import BcROIDETECT
39+
from regula.documentreader.webclient.gen.models.byte_array_result import ByteArrayResult
40+
from regula.documentreader.webclient.gen.models.byte_array_result_all_of import ByteArrayResultAllOf
3941
from regula.documentreader.webclient.gen.models.check_diagnose import CheckDiagnose
4042
from regula.documentreader.webclient.gen.models.check_result import CheckResult
4143
from regula.documentreader.webclient.gen.models.chosen_document_type import ChosenDocumentType
@@ -66,6 +68,7 @@
6668
from regula.documentreader.webclient.gen.models.document_types_candidates_list import DocumentTypesCandidatesList
6769
from regula.documentreader.webclient.gen.models.document_types_candidates_result import DocumentTypesCandidatesResult
6870
from regula.documentreader.webclient.gen.models.document_types_candidates_result_all_of import DocumentTypesCandidatesResultAllOf
71+
from regula.documentreader.webclient.gen.models.documents_database import DocumentsDatabase
6972
from regula.documentreader.webclient.gen.models.encrypted_rcl_result import EncryptedRCLResult
7073
from regula.documentreader.webclient.gen.models.encrypted_rcl_result_all_of import EncryptedRCLResultAllOf
7174
from regula.documentreader.webclient.gen.models.fdsid_list import FDSIDList
@@ -79,6 +82,8 @@
7982
from regula.documentreader.webclient.gen.models.graphic_fields_list import GraphicFieldsList
8083
from regula.documentreader.webclient.gen.models.graphics_result import GraphicsResult
8184
from regula.documentreader.webclient.gen.models.graphics_result_all_of import GraphicsResultAllOf
85+
from regula.documentreader.webclient.gen.models.healthcheck import Healthcheck
86+
from regula.documentreader.webclient.gen.models.healthcheck_documents_database import HealthcheckDocumentsDatabase
8287
from regula.documentreader.webclient.gen.models.ident_result import IdentResult
8388
from regula.documentreader.webclient.gen.models.ident_result_all_of import IdentResultAllOf
8489
from regula.documentreader.webclient.gen.models.image_data import ImageData

regula/documentreader/webclient/gen/api/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
# flake8: noqa
44

55
# import apis into api package
6-
from regula.documentreader.webclient.gen.api.default_api import DefaultApi
6+
from regula.documentreader.webclient.gen.api.healthcheck_api import HealthcheckApi
77
from regula.documentreader.webclient.gen.api.process_api import ProcessApi
88
from regula.documentreader.webclient.gen.api.transaction_api import TransactionApi

0 commit comments

Comments
 (0)