Firstly, run the definition-service:
cd definition-service
mvn spring-boot:run
And then, register the process definition to the definition-service with the following command:
http :9093/definition/raw/sales/simpleProcess.xml < definition-samples/simpleProcess.xml
Run the process-service:
cd process-service
mvn spring-boot:run
Start a process:
http :9094/instance processDefinitionId="sales/testProcess.xml" "roleMappings[0][name]=initiator" "roleMappings[0][endpoints][0]=initiator@uengine.org" "roleMappings[0][resourceNames][0]=Initiator" "Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNzEzMTUzODU0LCJpYXQiOjE3MTMxNTAyNTQsImlzcyI6Imh0dHA6Ly8xMjcuMC4wLjE6NTQzMjEvYXV0aC92MSIsInN1YiI6IjY3NjFhZTEyLTlkZjYtNDg5Mi1iMGZiLTFlNTNlYjJhMzljNiIsImVtYWlsIjoieWFuZzE3NjJAdWVuZ2luZS5vcmciLCJwaG9uZSI6IiIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIiwicHJvdmlkZXJzIjpbImVtYWlsIl19LCJ1c2VyX21ldGFkYXRhIjp7Im5hbWUiOiJ5YW5nMTc2MiJ9LCJyb2xlIjoiYXV0aGVudGljYXRlZCIsImFhbCI6ImFhbDEiLCJhbXIiOlt7Im1ldGhvZCI6InBhc3N3b3JkIiwidGltZXN0YW1wIjoxNzEzMTUwMjU0fV0sInNlc3Npb25faWQiOiIwMzg0ODFkYy03Y2JmLTRiODQtYWNmYS00NzMzOTZhMWI0MzIifQ.izL0kiUzAUh1HNsCl4ahm_UiindR2CSr5iMtSyCKPhU"
Confirm the RoleMapping:
http http://localhost:9094/instance/1/role-mapping/
must return the initiator's endpoint value as "initiator@uengine.org"
http POST :9094/instance 'processDefinitionId=sales/testLaneProcess.xml' 'roleMappings[0][name]=initiator' 'roleMappings[0][endpoints][0]=manager' 'roleMappings[0][resourceNames][0]=Initiator' 'Authorization:Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUmdaSjhxSW9EV3RNcDMteGJhUVIwcFVhYVUxZFhlNThYNW1PVmh6NkFJIn0.eyJleHAiOjE3MTI5MDA3NzEsImlhdCI6MTcxMjkwMDQ3MSwiYXV0aF90aW1lIjoxNzEyODk3MjI1LCJqdGkiOiIzNmQ1NDVlMS01MDVjLTQ1ZWItYWYzNi1hMjg5MzMyOTRmZDUiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjkwOTAvcmVhbG1zL3VlbmdpbmU2IiwiYXVkIjoiYWNjb3VudCIsInN1YiI6IjU1MzRmYmMwLWZmNWYtNDk3MS1hNzEwLWRhNjk5NWFkNGM2YiIsInR5cCI6IkJlYXJlciIsImF6cCI6InVlbmdpbmUiLCJub25jZSI6IjUzZTJkMTc2LWY0MGEtNDM2YS1hYjdhLWQ5NWU0OTBjYWY0ZSIsInNlc3Npb25fc3RhdGUiOiJmOWNlMjhjMy05YjY4LTQyYWItOTQ5Zi1jZmYxNTNlMGJmZGEiLCJhY3IiOiIwIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm1hbmFnZXIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy11ZW5naW5lNiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUiLCJzaWQiOiJmOWNlMjhjMy05YjY4LTQyYWItOTQ5Zi1jZmYxNTNlMGJmZGEiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InRlc3RlciIsImVtYWlsIjoiaW5pdGlhdG9yQHVlbmdpbmUub3JnIn0.BAkPxT1EmuSshUlvzkD6jTUKWUb8HgSbX6iqdEok1ou478g1IBA0UEqa3pdcYeVMnYS0153P4XgG1gnaQRVCNSqHqjxFXlQrWNDU2V5Y71rJmn8AkvTCHojJbo0cM5kNTc3HwMaJPE1C3Ira8kBUPqJTtspUh7RWI1WADmV59JYdlI_eaAlnFJdvrEAxErK3vgWPoSO2gJSYCL0_nH1TGTcTRENm8wOSvQjCu98aJLey_pQhdTJ1bM8jUlOVhJlXBKcz-zmPJmq2cKa0qA4s8Y8r8DfrdMgQsdUU339E2GZ9fhCmvEhRQ0023D3GHZgiibRIEKZO_35a1iRaaQDIzg'
http POST :9094/instance processDefinitionId="sales/testLaneProcess.xml" roleMappings[0][name]="initiator" roleMappings[0][endpoints][0]="manager" roleMappings[0][resourceNames][0]="Initiator" 'Authorization:Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUmdaSjhxSW9EV3RNcDMteGJhUVIwcFVhYVUxZFhlNThYNW1PVmh6NkFJIn0.eyJleHAiOjE3MTI5MDA3NzEsImlhdCI6MTcxMjkwMDQ3MSwiYXV0aF90aW1lIjoxNzEyODk3MjI1LCJqdGkiOiIzNmQ1NDVlMS01MDVjLTQ1ZWItYWYzNi1hMjg5MzMyOTRmZDUiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjkwOTAvcmVhbG1zL3VlbmdpbmU2IiwiYXVkIjoiYWNjb3VudCIsInN1YiI6IjU1MzRmYmMwLWZmNWYtNDk3MS1hNzEwLWRhNjk5NWFkNGM2YiIsInR5cCI6IkJlYXJlciIsImF6cCI6InVlbmdpbmUiLCJub25jZSI6IjUzZTJkMTc2LWY0MGEtNDM2YS1hYjdhLWQ5NWU0OTBjYWY0ZSIsInNlc3Npb25fc3RhdGUiOiJmOWNlMjhjMy05YjY4LTQyYWItOTQ5Zi1jZmYxNTNlMGJmZGEiLCJhY3IiOiIwIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm1hbmFnZXIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy11ZW5naW5lNiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUiLCJzaWQiOiJmOWNlMjhjMy05YjY4LTQyYWItOTQ5Zi1jZmYxNTNlMGJmZGEiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InRlc3RlciIsImVtYWlsIjoiaW5pdGlhdG9yQHVlbmdpbmUub3JnIn0.BAkPxT1EmuSshUlvzkD6jTUKWUb8HgSbX6iqdEok1ou478g1IBA0UEqa3pdcYeVMnYS0153P4XgG1gnaQRVCNSqHqjxFXlQrWNDU2V5Y71rJmn8AkvTCHojJbo0cM5kNTc3HwMaJPE1C3Ira8kBUPqJTtspUh7RWI1WADmV59JYdlI_eaAlnFJdvrEAxErK3vgWPoSO2gJSYCL0_nH1TGTcTRENm8wOSvQjCu98aJLey_pQhdTJ1bM8jUlOVhJlXBKcz-zmPJmq2cKa0qA4s8Y8r8DfrdMgQsdUU339E2GZ9fhCmvEhRQ0023D3GHZgiibRIEKZO_35a1iRaaQDIzg'
$KEY="eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUmdaSjhxSW9EV3RNcDMteGJhUVIwcFVhYVUxZFhlNThYNW1PVmh6NkFJIn0.eyJleHAiOjE3MTI5MDA3NzEsImlhdCI6MTcxMjkwMDQ3MSwiYXV0aF90aW1lIjoxNzEyODk3MjI1LCJqdGkiOiIzNmQ1NDVlMS01MDVjLTQ1ZWItYWYzNi1hMjg5MzMyOTRmZDUiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjkwOTAvcmVhbG1zL3VlbmdpbmU2IiwiYXVkIjoiYWNjb3VudCIsInN1YiI6IjU1MzRmYmMwLWZmNWYtNDk3MS1hNzEwLWRhNjk5NWFkNGM2YiIsInR5cCI6IkJlYXJlciIsImF6cCI6InVlbmdpbmUiLCJub25jZSI6IjUzZTJkMTc2LWY0MGEtNDM2YS1hYjdhLWQ5NWU0OTBjYWY0ZSIsInNlc3Npb25fc3RhdGUiOiJmOWNlMjhjMy05YjY4LTQyYWItOTQ5Zi1jZmYxNTNlMGJmZGEiLCJhY3IiOiIwIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm1hbmFnZXIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy11ZW5naW5lNiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUiLCJzaWQiOiJmOWNlMjhjMy05YjY4LTQyYWItOTQ5Zi1jZmYxNTNlMGJmZGEiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InRlc3RlciIsImVtYWlsIjoiaW5pdGlhdG9yQHVlbmdpbmUub3JnIn0.BAkPxT1EmuSshUlvzkD6jTUKWUb8HgSbX6iqdEok1ou478g1IBA0UEqa3pdcYeVMnYS0153P4XgG1gnaQRVCNSqHqjxFXlQrWNDU2V5Y71rJmn8AkvTCHojJbo0cM5kNTc3HwMaJPE1C3Ira8kBUPqJTtspUh7RWI1WADmV59JYdlI_eaAlnFJdvrEAxErK3vgWPoSO2gJSYCL0_nH1TGTcTRENm8wOSvQjCu98aJLey_pQhdTJ1bM8jUlOVhJlXBKcz-zmPJmq2cKa0qA4s8Y8r8DfrdMgQsdUU339E2GZ9fhCmvEhRQ0023D3GHZgiibRIEKZO_35a1iRaaQDIzg"
http POST :9094/instance processDefinitionId="sales/TroubleAlertTest" "roleMappings[0][name]=alert" "roleMappings[0][endpoints][0]=manager" "roleMappings[1][name]=manager" "roleMappings[1][endpoints][0]=manager" 'Authorization:Bearer $KEY'
http POST :9094/work-item/2/complete desiredState="complete" 'Authorization:Bearer $KEY'
$KEY="eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJJUmdaSjhxSW9EV3RNcDMteGJhUVIwcFVhYVUxZFhlNThYNW1PVmh6NkFJIn0.eyJleHAiOjE3MTI5MDA3NzEsImlhdCI6MTcxMjkwMDQ3MSwiYXV0aF90aW1lIjoxNzEyODk3MjI1LCJqdGkiOiIzNmQ1NDVlMS01MDVjLTQ1ZWItYWYzNi1hMjg5MzMyOTRmZDUiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjkwOTAvcmVhbG1zL3VlbmdpbmU2IiwiYXVkIjoiYWNjb3VudCIsInN1YiI6IjU1MzRmYmMwLWZmNWYtNDk3MS1hNzEwLWRhNjk5NWFkNGM2YiIsInR5cCI6IkJlYXJlciIsImF6cCI6InVlbmdpbmUiLCJub25jZSI6IjUzZTJkMTc2LWY0MGEtNDM2YS1hYjdhLWQ5NWU0OTBjYWY0ZSIsInNlc3Npb25fc3RhdGUiOiJmOWNlMjhjMy05YjY4LTQyYWItOTQ5Zi1jZmYxNTNlMGJmZGEiLCJhY3IiOiIwIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbIm1hbmFnZXIiLCJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiZGVmYXVsdC1yb2xlcy11ZW5naW5lNiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7ImFjY291bnQiOnsicm9sZXMiOlsibWFuYWdlLWFjY291bnQiLCJtYW5hZ2UtYWNjb3VudC1saW5rcyIsInZpZXctcHJvZmlsZSJdfX0sInNjb3BlIjoib3BlbmlkIGVtYWlsIHByb2ZpbGUiLCJzaWQiOiJmOWNlMjhjMy05YjY4LTQyYWItOTQ5Zi1jZmYxNTNlMGJmZGEiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InRlc3RlciIsImVtYWlsIjoiaW5pdGlhdG9yQHVlbmdpbmUub3JnIn0.BAkPxT1EmuSshUlvzkD6jTUKWUb8HgSbX6iqdEok1ou478g1IBA0UEqa3pdcYeVMnYS0153P4XgG1gnaQRVCNSqHqjxFXlQrWNDU2V5Y71rJmn8AkvTCHojJbo0cM5kNTc3HwMaJPE1C3Ira8kBUPqJTtspUh7RWI1WADmV59JYdlI_eaAlnFJdvrEAxErK3vgWPoSO2gJSYCL0_nH1TGTcTRENm8wOSvQjCu98aJLey_pQhdTJ1bM8jUlOVhJlXBKcz-zmPJmq2cKa0qA4s8Y8r8DfrdMgQsdUU339E2GZ9fhCmvEhRQ0023D3GHZgiibRIEKZO_35a1iRaaQDIzg"
http POST :9094/instance processDefinitionId="test/test" "roleMappings[0][name]=reporter" "roleMappings[0][endpoints][0]=manager" "roleMappings[1][name]=manager" "roleMappings[1][endpoints][0]=manager" "roleMappings[2][name]=worker" "roleMappings[2][endpoints][0]=manager" 'Authorization:Bearer $KEY'
$formJson='{"formDefId":"troubleReport","filePath":"troubleReport.form","valueMap":{"_type":"java.util.HashMap","TroubleReport":[{"_type":"java.util.HashMap","TroubleName":"test1","TroubleContent":"test2","troubleReporter":"test3","TroubleType":"고장","files":"data:text/plain;base64,"},{"_type":"java.util.HashMap","TroubleName":"test4","TroubleContent":"test5","troubleReporter":"test6","TroubleType":"민원","files":"data:text/plain;base64,"}]},"_type":"org.uengine.contexts.HtmlFormContext"}'
$formConfig="Content-Type:application/json"
http POST :9094/instance/1/variable/TroubleReportForm json="$formJson" $formConfig 'Authorization:Bearer $KEY'
Docker에 올릴 때는 큰 변경사항이 생기거나 동작을 불가능하게 하는 치명적인 버그가 생겼을 때 사용합니다.
실행은 루트 디렉토리/infra에서 다음 명령어로 Docker Compose를 사용하여 쉽게 시작하거나 종료시킬 수 있습니다:
```sh
# Docker Compose
docker-compose down
docker-compose up
```
