{"id":20726857,"url":"https://github.com/hmcts/bulk-scan-processor","last_synced_at":"2025-04-23T18:50:02.853Z","repository":{"id":38705471,"uuid":"133028120","full_name":"hmcts/bulk-scan-processor","owner":"hmcts","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-09T15:05:23.000Z","size":11904,"stargazers_count":5,"open_issues_count":20,"forks_count":6,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-04-09T16:24:01.221Z","etag":null,"topics":["java","jenkins-cft","jenkins-cft-a-c","plan-on-prod","scan","spring","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hmcts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-11T10:51:58.000Z","updated_at":"2025-04-03T16:47:00.000Z","dependencies_parsed_at":"2023-09-23T11:47:50.789Z","dependency_job_id":"b6bcc8f2-2fe0-4bef-9443-2a9a7d5f53d5","html_url":"https://github.com/hmcts/bulk-scan-processor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hmcts%2Fbulk-scan-processor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hmcts%2Fbulk-scan-processor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hmcts%2Fbulk-scan-processor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hmcts%2Fbulk-scan-processor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hmcts","download_url":"https://codeload.github.com/hmcts/bulk-scan-processor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250496204,"owners_count":21440227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","jenkins-cft","jenkins-cft-a-c","plan-on-prod","scan","spring","spring-boot"],"created_at":"2024-11-17T04:27:54.073Z","updated_at":"2025-04-23T18:50:02.840Z","avatar_url":"https://github.com/hmcts.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bulk scan processor\n\n![](https://github.com/hmcts/bulk-scan-processor/workflows/CI/badge.svg)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/958fd3d74a194a0f8b9529cbc012293e)](https://www.codacy.com/app/HMCTS/bulk-scan-processor)\n[![codecov](https://codecov.io/gh/hmcts/bulk-scan-processor/branch/master/graph/badge.svg)](https://codecov.io/gh/hmcts/bulk-scan-processor)\n[![Known Vulnerabilities](https://snyk.io/test/github/hmcts/bulk-scan-processor/badge.svg)](https://snyk.io/test/github/hmcts/bulk-scan-processor)\n\n## Purpose\n\nRetrieve scanned documents along with information extracted with OCR engine. Store the images and let recipient\nservices fetch the new data.\n\n## Getting Started\n### Prerequisites\n\n- [JDK 21](https://www.oracle.com/java)\n- Project requires Spring Boot v3.x to be present\n\n### Installation\n- Clone the repository\n- Ensure all required environment variables have been set.\n\n## Quick Start (Alternative)\nAn alternative faster way getting started is by using the automated setup script. This script will help set up all\nbulk scan/print repos including bulk-scan-processor and its dependencies.\nSee [common-dev-env-bsbp](https://github.com/hmcts/common-dev-env-bsbp) repository for more information.\nOnce set up script has ran successfully you can move the bulk-scan-processor from the newly created\ncommon-dev-env-bsbp/apps directory to your desired location.\n\n## Building and deploying the application\n\nThe project uses [Gradle](https://gradle.org) as a build tool. It already contains\n`./gradlew` wrapper script, so there's no need to install gradle.\n\n### Building the application\n\nTo build the project execute the following command:\n\n```bash\n  ./gradlew build\n```\n\n### Running the application\n\nYou will either need to add a .env file if one does not already exist, or add environment variables to your\nApplication tasks configuration.\n\nIf you choose to add a .env file, you will need to add all the\nenvironment variables listed in the [application.yaml](/src/main/resources/application.yaml) file.\n\nFor example, ${BULK_SCANNING_DB_PASSWORD:} in the application.yaml file will need to be\nadded as BULK_SCANNING_DB_PASSWORD=\"value from keyvault\" in your .env file.\n\nCreate the image of the application by executing the following command:\n\n```bash\n  ./gradlew assemble\n```\n\nApplication listens on port `8581` which can be overridden by setting `SERVER_PORT` environment variable or from [.env](/.env) file.\n\nThe application depends upon certain components that are already up and running.\nConfiguration details for each component can be changed by passing values in environment variables:\n\n#### PostgreSQL\n * `BULK_SCANNING_DB_HOST`\n * `BULK_SCANNING_DB_PORT`\n * `BULK_SCANNING_DB_NAME`\n * `BULK_SCANNING_DB_USER_NAME`\n * `BULK_SCANNING_DB_PASSWORD`\n\n#### Azure Blob Storage\n * `STORAGE_ACCOUNT_NAME`\n * `STORAGE_KEY`\n * `SAS_TOKEN_VALIDITY`\n\n#### Document Management Storage\n * `DOCUMENT_MANAGEMENT_URL` working endpoint URL\n\n#### Service to Service Authentication\n * `S2S_URL` working endpoint URL\n * `S2S_NAME` service name\n * `S2S_SECRET` service secret\n\nPlease find more details in [infrastructure/main.tf](/infrastructure/main.tf) file.\n\n### Running smoke tests\n\nSmoke tests expect an address of deployed application to be passed in `TEST_URL` environment variable. For example:\n\n```bash\n  TEST_URL=http://localhost:8561 ./gradlew smoke\n```\n\nBy default, it will use `http://localhost:8581` which is defined in [src/smokeTest/resources/application.yaml](/src/smokeTest/resources/application.yaml).\n\n### Running integration tests\n\n```bash\n  ./gradlew integration\n```\n\n## Migration\n\nTo 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.\n\n```bash\n./gradlew flywayMigrate\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhmcts%2Fbulk-scan-processor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhmcts%2Fbulk-scan-processor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhmcts%2Fbulk-scan-processor/lists"}