Retrieve scanned documents along with information extracted with OCR engine. Store the images and let recipient services fetch the new data.
- JDK 21
- Project requires Spring Boot v3.x to be present
- Clone the repository
- Ensure all required environment variables have been set.
An alternative faster way getting started is by using the automated setup script. This script will help set up all bulk scan/print repos including bulk-scan-processor and its dependencies. See common-dev-env-bsbp repository for more information. Once set up script has ran successfully you can move the bulk-scan-processor from the newly created common-dev-env-bsbp/apps directory to your desired location.
The project uses Gradle as a build tool. It already contains
./gradlew
wrapper script, so there's no need to install gradle.
To build the project execute the following command:
./gradlew build
You will either need to add a .env file if one does not already exist, or add environment variables to your Application tasks configuration.
If you choose to add a .env file, you will need to add all the environment variables listed in the application.yaml file.
For example, ${BULK_SCANNING_DB_PASSWORD:} in the application.yaml file will need to be added as BULK_SCANNING_DB_PASSWORD="value from keyvault" in your .env file.
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:
BULK_SCANNING_DB_HOST
BULK_SCANNING_DB_PORT
BULK_SCANNING_DB_NAME
BULK_SCANNING_DB_USER_NAME
BULK_SCANNING_DB_PASSWORD
STORAGE_ACCOUNT_NAME
STORAGE_KEY
SAS_TOKEN_VALIDITY
DOCUMENT_MANAGEMENT_URL
working endpoint URL
S2S_URL
working endpoint URLS2S_NAME
service nameS2S_SECRET
service secret
Please find more details in infrastructure/main.tf file.
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.
./gradlew integration
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
This project is licensed under the MIT License - see the LICENSE file for details