diff --git a/.github/workflows/worker-service.yml b/.github/workflows/worker-service.yml index 24d518a..998ac3c 100644 --- a/.github/workflows/worker-service.yml +++ b/.github/workflows/worker-service.yml @@ -51,7 +51,7 @@ jobs: - name: Build and Push Docker Image uses: docker/build-push-action@v6 with: - context: ./worker-service + context: . file: ./worker-service/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} diff --git a/auth-service/target/auth-service-0.0.1-SNAPSHOT.jar b/auth-service/target/auth-service-0.0.1-SNAPSHOT.jar new file mode 100644 index 0000000..2050b2a Binary files /dev/null and b/auth-service/target/auth-service-0.0.1-SNAPSHOT.jar differ diff --git a/auth-service/target/auth-service-0.0.1-SNAPSHOT.jar.original b/auth-service/target/auth-service-0.0.1-SNAPSHOT.jar.original new file mode 100644 index 0000000..d202f1f Binary files /dev/null and b/auth-service/target/auth-service-0.0.1-SNAPSHOT.jar.original differ diff --git a/auth-service/target/classes/application.yaml b/auth-service/target/classes/application.yaml index faafb3f..72edec2 100644 --- a/auth-service/target/classes/application.yaml +++ b/auth-service/target/classes/application.yaml @@ -24,6 +24,7 @@ spring: flyway: enabled: true baseline-on-migrate: true + locations: filesystem:/app/database/migrations mail: host: flowforge-mailpit diff --git a/auth-service/target/maven-archiver/pom.properties b/auth-service/target/maven-archiver/pom.properties new file mode 100644 index 0000000..147b25c --- /dev/null +++ b/auth-service/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=auth-service +groupId=com.flowforge +version=0.0.1-SNAPSHOT diff --git a/auth-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/auth-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..aa7c809 --- /dev/null +++ b/auth-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -0,0 +1 @@ +com\flowforge\auth_service\AuthServiceApplicationTests.class diff --git a/auth-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/auth-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..ccad611 --- /dev/null +++ b/auth-service/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1 @@ +C:\Users\ceasw\OneDrive\Desktop\flowforge\auth-service\src\test\java\com\flowforge\auth_service\AuthServiceApplicationTests.java diff --git a/auth-service/target/test-classes/com/flowforge/auth_service/AuthServiceApplicationTests.class b/auth-service/target/test-classes/com/flowforge/auth_service/AuthServiceApplicationTests.class new file mode 100644 index 0000000..453cc9c Binary files /dev/null and b/auth-service/target/test-classes/com/flowforge/auth_service/AuthServiceApplicationTests.class differ diff --git a/database/migrations/V3__create_worker_tables.sql b/database/migrations/V3__create_worker_tables.sql new file mode 100644 index 0000000..c5d1dfa --- /dev/null +++ b/database/migrations/V3__create_worker_tables.sql @@ -0,0 +1,22 @@ +-- Create worker_tasks table +CREATE TABLE IF NOT EXISTS worker_tasks ( + id UUID PRIMARY KEY, + type VARCHAR(50) NOT NULL, + payload TEXT, + status VARCHAR(20) NOT NULL DEFAULT 'PENDING', + result TEXT, + error TEXT, + workflow_execution_id UUID, + node_id UUID, + created_at TIMESTAMP NOT NULL DEFAULT NOW(), + updated_at TIMESTAMP NOT NULL DEFAULT NOW() +); + +-- Create dead_letter_tasks table +CREATE TABLE IF NOT EXISTS dead_letter_tasks ( + id UUID PRIMARY KEY, + original_topic VARCHAR(255) NOT NULL, + task_payload TEXT NOT NULL, + exception_message TEXT, + failed_at TIMESTAMP NOT NULL +); \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 081dd37..0fd854b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -65,7 +65,10 @@ services: - ./database:/app/database worker-service: - image: aswinrj/worker-service + build: + context: . + dockerfile: worker-service/Dockerfile + image: flowforge/worker-service:local container_name: worker-service restart: always depends_on: @@ -87,7 +90,7 @@ services: KAFKA_NODE_ID: 1 KAFKA_PROCESS_ROLES: broker,controller KAFKA_LISTENERS: PLAINTEXT://:9092,PLAINTEXT_HOST://:29092,CONTROLLER://:9093 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://flowforge-kafka:9092,PLAINTEXT_HOST://localhost:29092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,CONTROLLER:PLAINTEXT KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER @@ -99,4 +102,4 @@ services: volumes: postgres_data: - kafka_data: \ No newline at end of file + kafka_data: diff --git a/worker-service/Dockerfile b/worker-service/Dockerfile index 0e2d890..dd3ed2d 100644 --- a/worker-service/Dockerfile +++ b/worker-service/Dockerfile @@ -2,8 +2,10 @@ FROM eclipse-temurin:21-jre WORKDIR /app -COPY target/*.jar app.jar +COPY worker-service/target/*.jar app.jar +COPY database/migrations /app/database/migrations EXPOSE 8084 -ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file +ENTRYPOINT ["java", "-jar", "app.jar"] + diff --git a/worker-service/src/main/java/com/flowforge/worker_service/adapter/in/kafka/TaskCreatedConsumer.java b/worker-service/src/main/java/com/flowforge/worker_service/adapter/in/kafka/TaskCreatedConsumer.java index 4523a37..0037d77 100644 --- a/worker-service/src/main/java/com/flowforge/worker_service/adapter/in/kafka/TaskCreatedConsumer.java +++ b/worker-service/src/main/java/com/flowforge/worker_service/adapter/in/kafka/TaskCreatedConsumer.java @@ -27,8 +27,7 @@ public class TaskCreatedConsumer { backoff = @Backoff(delay = 1000, multiplier = 2), autoCreateTopics = "true", topicSuffixingStrategy = TopicSuffixingStrategy.SUFFIX_WITH_INDEX_VALUE, - include = { WorkerExecutionException.class }, - exclude = { JsonProcessingException.class } + include = { WorkerExecutionException.class } ) @KafkaListener( topics = "task-created", diff --git a/worker-service/src/main/java/com/flowforge/worker_service/adapter/in/kafka/TaskCreatedDltHandler.java b/worker-service/src/main/java/com/flowforge/worker_service/adapter/in/kafka/TaskCreatedDltHandler.java index 1eda7fe..a965bf9 100644 --- a/worker-service/src/main/java/com/flowforge/worker_service/adapter/in/kafka/TaskCreatedDltHandler.java +++ b/worker-service/src/main/java/com/flowforge/worker_service/adapter/in/kafka/TaskCreatedDltHandler.java @@ -24,7 +24,7 @@ public class TaskCreatedDltHandler { ) public void handleDlt(String message, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic, @Header(KafkaHeaders.EXCEPTION_MESSAGE) String exceptionMessage) { - log.error("Task-created message sent to DLT from topic {}: {} | reason: {}", + log.error("Task-created message sent to DLT from topic {}: {} | reason: {}", topic, message, exceptionMessage); DeadLetterTaskEntity entity = DeadLetterTaskEntity.builder() diff --git a/worker-service/src/main/resources/application.yaml b/worker-service/src/main/resources/application.yaml index 119adef..a262725 100644 --- a/worker-service/src/main/resources/application.yaml +++ b/worker-service/src/main/resources/application.yaml @@ -18,10 +18,11 @@ spring: flyway: enabled: true - locations: classpath:db/migration + locations: filesystem:/app/database/migrations + create-schemas: true kafka: - bootstrap-servers: flowforge-kafka:29092 + bootstrap-servers: flowforge-kafka:9092 producer: key-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.springframework.kafka.support.serializer.JsonSerializer diff --git a/worker-service/src/main/resources/db/migration/V1__create_worker_tasks.sql b/worker-service/src/main/resources/db/migration/V1__create_worker_tasks.sql deleted file mode 100644 index 39bac3c..0000000 --- a/worker-service/src/main/resources/db/migration/V1__create_worker_tasks.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE TABLE worker_tasks ( - id VARCHAR(36) PRIMARY KEY, - type VARCHAR(50) NOT NULL, - payload TEXT NOT NULL, - status VARCHAR(20) NOT NULL DEFAULT 'PENDING', - result TEXT, - error TEXT, - created_at TIMESTAMP NOT NULL DEFAULT NOW(), - updated_at TIMESTAMP NOT NULL DEFAULT NOW() -); \ No newline at end of file diff --git a/worker-service/src/main/resources/db/migration/V2__add_worker_task_execution_columns.sql b/worker-service/src/main/resources/db/migration/V2__add_worker_task_execution_columns.sql deleted file mode 100644 index 872ab34..0000000 --- a/worker-service/src/main/resources/db/migration/V2__add_worker_task_execution_columns.sql +++ /dev/null @@ -1,6 +0,0 @@ -ALTER TABLE worker_tasks - ADD COLUMN IF NOT EXISTS workflow_execution_id VARCHAR(36), - ADD COLUMN IF NOT EXISTS node_id VARCHAR(36); - -ALTER TABLE worker_tasks - ALTER COLUMN payload DROP NOT NULL; diff --git a/worker-service/src/main/resources/db/migration/V3__alter_id_to_uuid.sql b/worker-service/src/main/resources/db/migration/V3__alter_id_to_uuid.sql deleted file mode 100644 index 0748384..0000000 --- a/worker-service/src/main/resources/db/migration/V3__alter_id_to_uuid.sql +++ /dev/null @@ -1,13 +0,0 @@ - -ALTER TABLE worker_tasks - ALTER COLUMN id TYPE UUID USING id::uuid, - ALTER COLUMN workflow_execution_id TYPE UUID USING workflow_execution_id::uuid, - ALTER COLUMN node_id TYPE UUID USING node_id::uuid; - -CREATE TABLE IF NOT EXISTS dead_letter_tasks ( - id UUID PRIMARY KEY, - original_topic VARCHAR(255) NOT NULL, - task_payload TEXT NOT NULL, - exception_message TEXT, - failed_at TIMESTAMP NOT NULL -);