Skip to content

hellohatim/generic-workflow-application

Repository files navigation

Generic Workflow Application

This repository contains a prototype for a generic workflow platform built around a standalone Camunda 7 engine, a Spring Boot API host, a React frontend, a NestJS worker service, and workflow-pack assets.

Repository Layout

  • apps/workflow-api: Spring Boot API host with tenant-aware workflow facade endpoints
  • apps/workflow-ui: React UI for adaptive worklists, task details, admin, and process launch
  • apps/workflow-workers: NestJS reference external-task worker service
  • packages/workflow-contracts: shared TypeScript contracts that mirror the backend API shape
  • workflows: deployable workflow packs containing BPMN, DMN, Groovy, and JSON form metadata
  • docs/architecture: architecture and API design notes
  • infra: local runtime assets

Prototype Scope

The current prototype focuses on:

  • custom product APIs instead of raw engine REST exposure
  • workflow-owned vs source-system-owned data boundaries
  • logical multi-tenancy
  • standalone Camunda 7 as the workflow system of record
  • no workflow-specific business logic in the API host
  • JSON-driven user task forms loaded from workflow-pack metadata
  • NestJS external task workers for workflow-specific execution
  • header-based authentication stub with role-based authorization
  • metadata-driven UI rendering
  • a reference loan application workflow with user and system tasks
  • a sample claim approval workflow pack with external tasks, DMN guidance, and resubmission loop

Local Verification

  1. Install workspace dependencies:
npm install
  1. Start the standalone workflow runtime:
.\scripts\start-workflow-runtime.ps1

This brings up PostgreSQL, a standalone Camunda 7 container on http://localhost:8081, and the NestJS external-task worker container. Cockpit is available from that engine container rather than from the API host.

  1. Deploy the workflow packs:
.\scripts\deploy-workflow-pack.ps1 -WorkflowKey loan-application
.\scripts\deploy-workflow-pack.ps1 -WorkflowKey claim-approval
  1. Run the backend API host:
cd apps/workflow-api
.\mvnw.cmd test
.\mvnw.cmd spring-boot:run

Useful backend environment variables:

$env:WORKFLOW_ENGINE_BASE_URL="http://localhost:8081/engine-rest"
$env:WORKFLOW_FORMS_PATH="..\..\workflows"
  1. Run the frontend:
cd apps/workflow-ui
npm run dev
npm run build:ui
  1. Optional worker-only local build:
cd apps/workflow-workers
npm run build

The Maven wrapper is configured so apps/workflow-api\mvnw.cmd can use the repo-local .tools/jdk8 fallback when a full system JDK is not installed.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors