{"id":21654477,"url":"https://github.com/hvalfangst/spring-batch","last_synced_at":"2026-05-07T09:32:23.176Z","repository":{"id":185061925,"uuid":"672479043","full_name":"hvalfangst/spring-batch","owner":"hvalfangst","description":"HTTP-triggered Spring Batch tasklet job which performs ETL","archived":false,"fork":false,"pushed_at":"2023-08-15T12:52:48.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-20T04:44:03.432Z","etag":null,"topics":["etl","exposed","flyway","kotlin","spring-6","spring-batch","spring-boot","spring-boot-3"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hvalfangst.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-07-30T08:17:30.000Z","updated_at":"2024-10-14T21:42:57.000Z","dependencies_parsed_at":"2024-11-25T08:43:36.228Z","dependency_job_id":null,"html_url":"https://github.com/hvalfangst/spring-batch","commit_stats":null,"previous_names":["hvalfangst/kotlin-spring-batch-etl","hvalfangst/spring-batch"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hvalfangst/spring-batch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hvalfangst%2Fspring-batch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hvalfangst%2Fspring-batch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hvalfangst%2Fspring-batch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hvalfangst%2Fspring-batch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hvalfangst","download_url":"https://codeload.github.com/hvalfangst/spring-batch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hvalfangst%2Fspring-batch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32731298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["etl","exposed","flyway","kotlin","spring-6","spring-batch","spring-boot","spring-boot-3"],"created_at":"2024-11-25T08:27:59.267Z","updated_at":"2026-05-07T09:32:23.157Z","avatar_url":"https://github.com/hvalfangst.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HTTP triggered Spring Batch ETL Job using Tasklet\n\n## Overview\n\nThe main purpose of this application is to perform data migration and aggregation from a source database to a target database using Spring Batch. \nIt follows the ETL pattern, where data is extracted from the source database, transformed, and loaded into the target database. \nThe application provides an easy-to-use RESTful API to trigger the ETL job.\n\n## Requirements\n\n* x86-64\n* JDK 17\n* Docker\n\n## Startup\n\nThe script \"up\" starts the application by executing the following:\n```\n1. docker-compose -f db/source/docker-compose.yml up -d\n2. docker-compose -f db/target/docker-compose.yml up -d\n3. mvn clean install\n4. mvn spring-boot:run\n```\n\n\n## Usage\n\nThe application exposes an HTTP endpoint for triggering the ETL job. \nYou can use any REST client, like Postman, to make a POST request to the /batch/start endpoint with the target date as a parameter.\n\n## Endpoint details\n\nEndpoint: POST /batch/start\n\nParameters:\n\n    targetDate: The date for which the ETL job should be executed. It should be in the format 'yyyy-MM-dd'.\n\nResponse: The endpoint will respond with a 200 status code if the job succeeded and a 400 status code if the job failed.\n\n## Shutdown\n\nThe script \"down\" wipes the source and target databases executing the following:\n```\n1. docker-compose -f db/source/docker-compose.yml down\n2. docker-compose -f db/target/docker-compose.yml down\n```\n\n\n## Postman Collection\n\nThe repository includes a Postman collection in the 'postman' directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhvalfangst%2Fspring-batch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhvalfangst%2Fspring-batch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhvalfangst%2Fspring-batch/lists"}