Bulk scan processor
Purpose
Retrieve scanned documents along with information extracted with OCR engine. Store the images and let recipient services fetch the new data.
Building and deploying the application
The project uses Gradle as a build tool. It already contains
./gradlew
wrapper script, so there's no need to install gradle.
Building the application
To build the project execute the following command:
./gradlew build
Running the application
Create the image of the application by executing the following command:
./gradlew assemble
Application listens on port 8581
which can be overridden by setting SERVER_PORT
environment variable or from .env file.
The application depends upon certain components that are already up and running. Configuration details for each component can be changed by passing values in environment variables:
PostgreSQL
BULK_SCANNING_DB_HOST
BULK_SCANNING_DB_PORT
BULK_SCANNING_DB_NAME
BULK_SCANNING_DB_USER_NAME
BULK_SCANNING_DB_PASSWORD
Azure Blob Storage
STORAGE_ACCOUNT_NAME
STORAGE_KEY
SAS_TOKEN_VALIDITY
Document Management Storage
DOCUMENT_MANAGEMENT_URL
working endpoint URL
Service to Service Authentication
S2S_URL
working endpoint URLS2S_NAME
service nameS2S_SECRET
service secret
Please find more details in infrastructure/main.tf file.
Running smoke tests
Smoke tests expect an address of deployed application to be passed in TEST_URL
environment variable. For example:
TEST_URL=http://localhost:8561 ./gradlew smoke
By default, it will use http://localhost:8581
which is defined in src/smokeTest/resources/application.yaml.
Running integration tests
./gradlew integration
Migration
To run migration gradle task expects FLYWAY_URL
to be present. In case db requires username/password: FLYWAY_USER
and FLYWAY_PASSWORD
. Once those variables are exported all flyway tasks are available.
./gradlew flywayMigrate
License
This project is licensed under the MIT License - see the LICENSE file for details