{
	"info": {
		"_postman_id": "61e8f5c7-1f1f-4f71-b07c-64ad2cbbf517",
		"name": "Tests",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"item": [
		{
			"name": "Healthcheck",
			"item": [
				{
					"name": "Base",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"\r",
									"pm.test(\"Should respond version\", () => {\r",
									"    pm.expect(response.version).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Should respond engine version\", () => {\r",
									"    pm.expect(response.engine).to.exist;\r",
									"})"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{host}}/",
							"host": [
								"{{host}}"
							],
							"path": [
								""
							]
						}
					},
					"response": []
				},
				{
					"name": "Healthcheck",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"\r",
									"pm.test(\"Should respond version\", () => {\r",
									"    pm.expect(response.version).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Should respond engine version\", () => {\r",
									"    pm.expect(response.engine).to.exist;\r",
									"})"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{host}}/healthcheck",
							"host": [
								"{{host}}"
							],
							"path": [
								"healthcheck"
							]
						}
					},
					"response": []
				}
			],
			"auth": {
				"type": "noauth"
			},
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"type": "text/javascript",
						"exec": [
							""
						]
					}
				},
				{
					"listen": "test",
					"script": {
						"type": "text/javascript",
						"exec": [
							""
						]
					}
				}
			]
		},
		{
			"name": "Token",
			"item": [
				{
					"name": "Create Token - without payload",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"\r",
									"pm.test(\"Should return jwtToken\", () => {\r",
									"    pm.expect(response.jwtToken).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Should return payload\", () => {\r",
									"    pm.expect(response.payload).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Should return actor_id\", () => {\r",
									"    pm.expect(response.payload.actor_id).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Should return session_id\", () => {\r",
									"    pm.expect(response.payload.session_id).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Claims should be empty\", () => {\r",
									"    pm.expect(response.payload.claims).to.have.length(0);\r",
									"})\r",
									"\r",
									"pm.environment.set(\"token\", response.jwtToken)"
								],
								"type": "text/javascript"
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"pm.collectionVariables.set(\"actor_id\",\"06dc94af-3a8a-40e3-be2c-4942c991e8b5\")"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [],
						"url": {
							"raw": "{{host}}/token",
							"host": [
								"{{host}}"
							],
							"path": [
								"token"
							]
						}
					},
					"response": []
				},
				{
					"name": "Create Token - with actor_id",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"const providedActorId = pm.collectionVariables.get(\"actor_id\")\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"\r",
									"pm.test(\"Should use provided actor_id\", () => {\r",
									"    pm.expect(response.payload.actor_id).to.eql(providedActorId);\r",
									"})"
								],
								"type": "text/javascript"
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"pm.collectionVariables.set(\"actor_id\",\"3556a862-1663-4fed-b4a0-a028d1be2a4e\")"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"actor_id\": \"{{actor_id}}\"\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{host}}/token",
							"host": [
								"{{host}}"
							],
							"path": [
								"token"
							]
						}
					},
					"response": []
				},
				{
					"name": "Create Token - with duration",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"\r",
									"const definedDuration = pm.collectionVariables.get('duration');\r",
									"const duration = response.payload.exp - response.payload.iat;\r",
									"\r",
									"pm.test(\"Should use defined duration\", () => {\r",
									"    pm.expect(duration).to.eql(definedDuration);\r",
									"});"
								],
								"type": "text/javascript"
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"pm.collectionVariables.set(\"duration\", 6000)"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "x-duration",
								"value": "{{duration}}",
								"type": "text"
							}
						],
						"url": {
							"raw": "{{host}}/token",
							"host": [
								"{{host}}"
							],
							"path": [
								"token"
							]
						}
					},
					"response": []
				},
				{
					"name": "Create Token - with claims",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"const providedClaims = pm.collectionVariables.get(\"claims\")\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"\r",
									"pm.test(\"Should use provided claims\", () => {\r",
									"    pm.expect(JSON.stringify(response.payload.claims)).to.eql(providedClaims);\r",
									"})"
								],
								"type": "text/javascript"
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"pm.collectionVariables.set(\"claims\",'[\"a\",\"b\"]')"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"claims\": {{claims}}\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{host}}/token",
							"host": [
								"{{host}}"
							],
							"path": [
								"token"
							]
						}
					},
					"response": []
				},
				{
					"name": "Create Token - with claims as string",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"const providedClaims = pm.collectionVariables.get(\"claims\")\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"\r",
									"pm.test(\"Should convert claims to an Array\", () => {\r",
									"    pm.expect(response.payload.claims[0]).to.eql(providedClaims);\r",
									"})"
								],
								"type": "text/javascript"
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"pm.collectionVariables.set(\"claims\",\"abc\")"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"claims\": \"{{claims}}\"\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{host}}/token",
							"host": [
								"{{host}}"
							],
							"path": [
								"token"
							]
						}
					},
					"response": []
				}
			],
			"auth": {
				"type": "noauth"
			},
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"type": "text/javascript",
						"exec": [
							""
						]
					}
				},
				{
					"listen": "test",
					"script": {
						"type": "text/javascript",
						"exec": [
							""
						]
					}
				}
			]
		},
		{
			"name": "Packages",
			"item": [
				{
					"name": "Create Package (without token)",
					"event": [
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript"
							}
						},
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test(\"Should return 401\", function () {\r",
									"    pm.response.to.have.status(401);\r",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"name\": \"{{$guid}}\",\r\n    \"description\": \"test package\",\r\n    \"code\": [\r\n        \"do\",\r\n        [\r\n            \"def\",\r\n            \"package_test_1\",\r\n            [\r\n                \"fn\",\r\n                [],\r\n                [\r\n                    \"prn\",\r\n                    [\r\n                        \"`\",\r\n                        \"Dummy test is running!\"\r\n                    ]\r\n                ]\r\n            ]\r\n        ]\r\n    ]\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{host}}/packages",
							"host": [
								"{{host}}"
							],
							"path": [
								"packages"
							]
						}
					},
					"response": []
				},
				{
					"name": "Create Package",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"\r",
									"pm.test(\"Status code is 201\", function () {\r",
									"    pm.response.to.have.status(201);\r",
									"});\r",
									"\r",
									"pm.test(\"Should return package_id\", () => {\r",
									"    pm.expect(response.package_id).to.exist;\r",
									"})\r",
									"\r",
									"pm.collectionVariables.set(\"package_id\",response.package_id)"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"name\": \"{{$guid}}\",\r\n    \"description\": \"test package\",\r\n    \"code\": [\r\n        \"do\",\r\n        [\r\n            \"def\",\r\n            \"package_test_1\",\r\n            [\r\n                \"fn\",\r\n                [],\r\n                [\r\n                    \"prn\",\r\n                    [\r\n                        \"`\",\r\n                        \"Dummy test is running!\"\r\n                    ]\r\n                ]\r\n            ]\r\n        ]\r\n    ]\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{host}}/packages",
							"host": [
								"{{host}}"
							],
							"path": [
								"packages"
							]
						}
					},
					"response": []
				},
				{
					"name": "Read Package",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"const package_id = pm.collectionVariables.get(\"package_id\")\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(200);\r",
									"});\r",
									"\r",
									"pm.test(\"Should return id\", () => {\r",
									"    pm.expect(response.id).to.eql(package_id);\r",
									"})\r",
									"\r",
									"pm.test(\"Should return created_at\", () => {\r",
									"    pm.expect(response.created_at).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Should return name\", () => {\r",
									"    pm.expect(response.name).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Should return description\", () => {\r",
									"    pm.expect(response.description).to.exist;\r",
									"})\r",
									"\r",
									"pm.test(\"Should return code\", () => {\r",
									"    pm.expect(response.code).to.exist;\r",
									"})"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{host}}/packages/:id",
							"host": [
								"{{host}}"
							],
							"path": [
								"packages",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "{{package_id}}"
								}
							]
						}
					},
					"response": []
				},
				{
					"name": "Delete Package",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const response = pm.response.json();\r",
									"const package_id = pm.collectionVariables.get(\"package_id\")\r",
									"\r",
									"pm.test(\"Status code is 200\", function () {\r",
									"    pm.response.to.have.status(202);\r",
									"});\r",
									"\r",
									"pm.test(\"Should return 1 package deleted\", () => {\r",
									"    pm.expect(response.deleted).to.eql(1);\r",
									"})"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "DELETE",
						"header": [],
						"url": {
							"raw": "{{host}}/packages/:id",
							"host": [
								"{{host}}"
							],
							"path": [
								"packages",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "{{package_id}}"
								}
							]
						}
					},
					"response": []
				}
			]
		},
		{
			"name": "Workflows",
			"item": [
				{
					"name": "DELETE /:id",
					"item": [
						{
							"name": "Setup",
							"item": [
								{
									"name": "Create workflow_id_for_delete",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id_for_delete\",response.workflow_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"test_for_delete\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create workflow_id",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id\",response.workflow_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"test_for_delete_with_process\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create Process for workflow_id",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id",
												"create"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{workflow_id}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Success - 204",
							"item": [
								{
									"name": "Delete Workflow (with id)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 204\", function () {\r",
													"    pm.response.to.have.status(204);\r",
													"});\r",
													""
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "DELETE",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{workflow_id_for_delete}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Error - 422",
							"item": [
								{
									"name": "Delete Workflow (id with process)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 422\", function () {\r",
													"    pm.response.to.have.status(422);\r",
													"});\r",
													"\r",
													"pm.test(\"Response has message 'Cannot delete workflows with processes'\", function () {\r",
													"    pm.expect(response.message).to.eql(\"Cannot delete workflows with processes\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "DELETE",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{workflow_id}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Error - 404",
							"item": [
								{
									"name": "Delete Workflow (random id)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 404\", function () {\r",
													"    pm.response.to.have.status(404);\r",
													"});\r",
													"\r",
													"pm.test(\"Response has message 'No such workflow'\", function () {\r",
													"    pm.expect(response.message).to.eql(\"No such workflow\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "DELETE",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{$guid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						}
					]
				},
				{
					"name": "POST /",
					"item": [
						{
							"name": "Success - 201",
							"item": [
								{
									"name": "Create Workflow (without id)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return workflow_id\", () => {\r",
													"    pm.expect(response.workflow_id).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return hash\", () => {\r",
													"    pm.expect(response.hash).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return version\", () => {\r",
													"    pm.expect(response.version).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should have no warnings\", () => {\r",
													"    pm.expect(response.warnings).to.exist;\r",
													"    pm.expect(response.warnings).to.have.length(0);\r",
													"})\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id\",response.workflow_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create Workflow (with id)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													"var uuid = require(\"uuid\")\r",
													"\r",
													"const id = uuid.v4();\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id\", id)"
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"const workflow_id = pm.collectionVariables.get(\"workflow_id\")\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return workflow_id\", () => {\r",
													"    pm.expect(response.workflow_id).to.eql(workflow_id);\r",
													"})\r",
													"\r",
													"pm.test(\"Should return hash\", () => {\r",
													"    pm.expect(response.hash).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return version\", () => {\r",
													"    pm.expect(response.version).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should have no warnings\", () => {\r",
													"    pm.expect(response.warnings).to.exist;\r",
													"    pm.expect(response.warnings).to.have.length(0);\r",
													"})"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"workflow_id\": \"{{workflow_id}}\",\r\n  \"name\": \"basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Error - 401",
							"item": [
								{
									"name": "Create Workflow (without token)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Should return 401\", function () {\r",
													"    pm.response.to.have.status(401);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"auth": {
											"type": "noauth"
										},
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Error - 400",
							"item": [
								{
									"name": "Create Workflow (without body)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 400\", function () {\r",
													"    pm.response.to.have.status(400);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return message\", () => {\r",
													"    pm.expect(response.message).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return errors\", () => {\r",
													"    pm.expect(response.error).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return 3 errors\", () => {\r",
													"    pm.expect(response.error).to.have.length(3);\r",
													"})"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create Workflow (repeated id)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"pm.collectionVariables.get(\"workflow_id\")\r",
													"\r",
													"pm.test(\"Status code is 400\", function () {\r",
													"    pm.response.to.have.status(400);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return message\", () => {\r",
													"    pm.expect(response.message).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return error\", () => {\r",
													"    pm.expect(response.error).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return that this id already exist\", () => {\r",
													"    pm.expect(response.error).to.eql(\"workflow already exists\");\r",
													"})\r",
													""
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"workflow_id\": \"{{workflow_id}}\",\r\n  \"name\": \"basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create Workflow (not a uuid)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"pm.collectionVariables.get(\"workflow_id\")\r",
													"\r",
													"pm.test(\"Status code is 400\", function () {\r",
													"    pm.response.to.have.status(400);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return message\", () => {\r",
													"    pm.expect(response.message).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return error\", () => {\r",
													"    pm.expect(response.error).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return error\", () => {\r",
													"    pm.expect(response.error[0].field).to.eql(\"/workflow_id\");\r",
													"})"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n    \"workflow_id\": \"not_a_uuid\",\r\n    \"name\": \"basic\",\r\n    \"description\": \"system workflow\",\r\n    \"blueprint_spec\": {\r\n        \"requirements\": [\r\n            \"core\"\r\n        ],\r\n        \"prepare\": [],\r\n        \"nodes\": [\r\n            {\r\n                \"id\": \"1\",\r\n                \"type\": \"Start\",\r\n                \"name\": \"Start node\",\r\n                \"parameters\": {\r\n                    \"input_schema\": {}\r\n                },\r\n                \"next\": \"2\",\r\n                \"lane_id\": \"1\"\r\n            },\r\n            {\r\n                \"id\": \"3\",\r\n                \"type\": \"Finish\",\r\n                \"name\": \"Finish node\",\r\n                \"next\": null,\r\n                \"lane_id\": \"1\"\r\n            }\r\n        ],\r\n        \"lanes\": [\r\n            {\r\n                \"id\": \"1\",\r\n                \"name\": \"the_only_lane\",\r\n                \"rule\": [\r\n                    \"fn\",\r\n                    [\r\n                        \"&\",\r\n                        \"args\"\r\n                    ],\r\n                    true\r\n                ]\r\n            }\r\n        ],\r\n        \"environment\": {}\r\n    }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create Workflow (lane missing)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 400\", function () {\r",
													"    pm.response.to.have.status(400);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return message\", () => {\r",
													"    pm.expect(response.message).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return Invalid Connections\", () => {\r",
													"    pm.expect(response.message).to.eql(\"Invalid Connections\");\r",
													"})\r",
													"\r",
													"pm.test(\"Should return error\", () => {\r",
													"    pm.expect(response.error).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return error should point to lane\", () => {\r",
													"    pm.expect(response.error[0].lane).to.be.false;\r",
													"})"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"4\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create Workflow (node missing)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"pm.collectionVariables.get(\"workflow_id\")\r",
													"\r",
													"pm.test(\"Status code is 400\", function () {\r",
													"    pm.response.to.have.status(400);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return message\", () => {\r",
													"    pm.expect(response.message).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return Invalid Connections\", () => {\r",
													"    pm.expect(response.message).to.eql(\"Invalid Connections\");\r",
													"})\r",
													"\r",
													"pm.test(\"Should return error\", () => {\r",
													"    pm.expect(response.error).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return error should point to next\", () => {\r",
													"    pm.expect(response.error[0].next).to.be.false;\r",
													"})"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"3\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create Workflow (duplicated lane)",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"pm.collectionVariables.get(\"workflow_id\")\r",
													"\r",
													"pm.test(\"Status code is 400\", function () {\r",
													"    pm.response.to.have.status(400);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return message\", () => {\r",
													"    pm.expect(response.message).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Should return error\", () => {\r",
													"    pm.expect(response.error).to.exist;\r",
													"})\r",
													"\r",
													"pm.test(\"Error should point to Lanes\", () => {\r",
													"    pm.expect(response.error[0].field).to.eql(\"/blueprint_spec/lanes\");\r",
													"})"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      },\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\"fn\", [\"&\", \"args\"], true]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								}
							]
						}
					]
				},
				{
					"name": "POST /:id/create",
					"item": [
						{
							"name": "Setup",
							"item": [
								{
									"name": "Create the Workflow",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													"pm.collectionVariables.set(\"workflow_name_for_create\",\"tests_name_for_create\")"
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id_for_create\",response.workflow_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"{{workflow_name_for_create}}\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Success - 201",
							"item": [
								{
									"name": "Create Process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"const workflow_id = pm.collectionVariables.get(\"workflow_id_for_create\")\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow data\", () => {\r",
													"    pm.expect(response.workflow).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow version\", () => {\r",
													"    pm.expect(response.workflow.version).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow name\", () => {\r",
													"    pm.expect(response.workflow.name).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow id\", () => {\r",
													"    pm.expect(response.workflow.id).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"The workflow_id should be the same provided\", () => {\r",
													"    pm.expect(response.workflow.id).to.eql(workflow_id);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id",
												"create"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{workflow_id_for_create}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Error - 404",
							"item": [
								{
									"name": "Create Process (random id)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 404\", function () {\r",
													"    pm.response.to.have.status(404);\r",
													"});\r",
													"\r",
													"pm.test(\"Should NOT return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.be.undefined;\r",
													"});\r",
													""
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id",
												"create"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{$guid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						}
					]
				},
				{
					"name": "POST /name/:name/create",
					"item": [
						{
							"name": "Setup",
							"item": [
								{
									"name": "Create the Workflow",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													"pm.collectionVariables.set(\"workflow_name_for_create\",\"tests_name_for_create\")"
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id_for_create\",response.workflow_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"{{workflow_name_for_create}}\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Success - 201",
							"item": [
								{
									"name": "Create Process by Name",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"const workflow_id = pm.collectionVariables.get(\"workflow_id_for_create\")\r",
													"const workflow_name = pm.collectionVariables.get(\"workflow_name_for_create\")\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow data\", () => {\r",
													"    pm.expect(response.workflow).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow version\", () => {\r",
													"    pm.expect(response.workflow.version).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow name\", () => {\r",
													"    pm.expect(response.workflow.name).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"The workflow_id should be the same provided\", () => {\r",
													"    pm.expect(response.workflow.name).to.eql(workflow_name);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow id\", () => {\r",
													"    pm.expect(response.workflow.id).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"The workflow_id should be the same provided\", () => {\r",
													"    pm.expect(response.workflow.id).to.eql(workflow_id);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/name/:name/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												"name",
												":name",
												"create"
											],
											"variable": [
												{
													"key": "name",
													"value": "{{workflow_name_for_create}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Error - 404",
							"item": [
								{
									"name": "Create Process by Name (random name)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 404\", function () {\r",
													"    pm.response.to.have.status(404);\r",
													"});\r",
													"\r",
													"pm.test(\"Should NOT return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.be.undefined;\r",
													"});\r",
													""
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/name/:name/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												"name",
												":name",
												"create"
											],
											"variable": [
												{
													"key": "name",
													"value": "{{$randomWord}}"
												}
											]
										}
									},
									"response": []
								}
							]
						}
					]
				},
				{
					"name": "Start Process",
					"item": [
						{
							"name": "Setup",
							"item": [
								{
									"name": "Create the Workflow",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													"pm.collectionVariables.set(\"workflow_name_for_start\",\"tests_name_for_start\")"
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id_for_start\", response.workflow_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"{{workflow_name_for_start}}\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Start Process by Name",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const workflow_id = pm.collectionVariables.get(\"workflow_id_for_start\")\r",
											"const workflow_name = pm.collectionVariables.get(\"workflow_name_for_start\")\r",
											"\r",
											"pm.test(\"Status code is 201\", function () {\r",
											"    pm.response.to.have.status(201);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return a process_id\", () => {\r",
											"    pm.expect(response.process_id).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return the workflow data\", () => {\r",
											"    pm.expect(response.workflow).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return the workflow version\", () => {\r",
											"    pm.expect(response.workflow.version).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return the workflow name\", () => {\r",
											"    pm.expect(response.workflow.name).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"The workflow_id should be the same provided\", () => {\r",
											"    pm.expect(response.workflow.name).to.eql(workflow_name);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return the workflow id\", () => {\r",
											"    pm.expect(response.workflow.id).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"The workflow_id should be the same provided\", () => {\r",
											"    pm.expect(response.workflow.id).to.eql(workflow_id);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name/start",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name",
										"start"
									],
									"variable": [
										{
											"key": "name",
											"value": "{{workflow_name_for_start}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Start Process by Name (random name)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 404\", function () {\r",
											"    pm.response.to.have.status(404);\r",
											"});\r",
											"\r",
											"pm.test(\"Should NOT return a process_id\", () => {\r",
											"    pm.expect(response.process_id).to.be.undefined;\r",
											"});\r",
											""
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name/create",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name",
										"create"
									],
									"variable": [
										{
											"key": "name",
											"value": "{{$randomWord}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "List Workflows",
					"item": [
						{
							"name": "List Workflows",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return more than 1 workflow\", () => {\r",
											"    pm.expect(response.length).to.be.at.least(1);\r",
											"});\r",
											"\r",
											"const first = response.find(i => i.name === \"basic\");\r",
											"\r",
											"pm.test(\"Should return workflow_id\", () => {\r",
											"    pm.expect(first.workflow_id).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return created_at\", () => {\r",
											"    pm.expect(first.created_at).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return name\", () => {\r",
											"    pm.expect(first.name).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return description\", () => {\r",
											"    pm.expect(first.description).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return version\", () => {\r",
											"    pm.expect(first.version).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return hash\", () => {\r",
											"    pm.expect(first.hash).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should NOT return blueprint_spec\", () => {\r",
											"    pm.expect(first.blueprint_spec).to.be.undefined;\r",
											"});\r",
											"\r",
											"pm.collectionVariables.set(\"workflow_id\",first.workflow_id);\r",
											"pm.collectionVariables.set(\"workflow_name\",first.name);"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Convert Diagram",
					"item": [
						{
							"name": "Convert Diagram",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"var jsonObject = xml2Json(responseBody);\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Response has body\", function () {\r",
											"    pm.expect(responseBody).to.exist;\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n  \"name\": \"basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/workflows/diagram",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"diagram"
									]
								}
							},
							"response": []
						},
						{
							"name": "Convert Diagram (with workflow_id)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"var jsonObject = xml2Json(responseBody);\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Response has body\", function () {\r",
											"    pm.expect(responseBody).to.exist;\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n  \"workflow_id\": \"{{workflow_id}}\"\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/workflows/diagram",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"diagram"
									]
								}
							},
							"response": []
						},
						{
							"name": "Convert Diagram (random id)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 404\", function () {\r",
											"    pm.response.to.have.status(404);\r",
											"});\r",
											"\r",
											"pm.test(\"Response has message 'No such workflow'\", function () {\r",
											"    pm.expect(response.message).to.eql(\"No such workflow\");\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n  \"workflow_id\": \"{{$guid}}\"\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/workflows/diagram",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"diagram"
									]
								}
							},
							"response": []
						},
						{
							"name": "Convert Diagram (not a uuid)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 400\", function () {\r",
											"    pm.response.to.have.status(400);\r",
											"});\r",
											"\r",
											"pm.test(\"Response has message 'Invalid uuid'\", function () {\r",
											"    pm.expect(response.message).to.eql(\"Invalid uuid\");\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n  \"workflow_id\": \"not_a_uuid\"\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/workflows/diagram",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"diagram"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Read Workflows",
					"item": [
						{
							"name": "Read Workflows by Id",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const workflow_id = pm.collectionVariables.get(\"workflow_id\")\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return the workflow_id provided\", () => {\r",
											"    pm.expect(response.workflow_id).to.eql(workflow_id);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return workflow_id\", () => {\r",
											"    pm.expect(response.workflow_id).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return created_at\", () => {\r",
											"    pm.expect(response.created_at).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return name\", () => {\r",
											"    pm.expect(response.name).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return description\", () => {\r",
											"    pm.expect(response.description).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return version\", () => {\r",
											"    pm.expect(response.version).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return hash\", () => {\r",
											"    pm.expect(response.hash).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return blueprint_spec\", () => {\r",
											"    pm.expect(response.blueprint_spec).to.exist;\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/:id",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{workflow_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read Workflows by Id (non existent id)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 204\", function () {\r",
											"    pm.response.to.have.status(204);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/:id",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{$guid}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read Workflows by Id (invalid id)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 400\", function () {\r",
											"    pm.response.to.have.status(400);\r",
											"});\r",
											"\r",
											"pm.test(\"Message should be Invalid uuid\", () => {\r",
											"    pm.expect(response.message).to.eql(\"Invalid uuid\");\r",
											"});\r",
											""
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/:id",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "not_a_uuid"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read Workflows by Name",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const workflow_id = pm.collectionVariables.get(\"workflow_id\")\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return the workflow_id provided\", () => {\r",
											"    pm.expect(response.workflow_id).to.eql(workflow_id);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return workflow_id\", () => {\r",
											"    pm.expect(response.workflow_id).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return created_at\", () => {\r",
											"    pm.expect(response.created_at).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return name\", () => {\r",
											"    pm.expect(response.name).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return description\", () => {\r",
											"    pm.expect(response.description).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return version\", () => {\r",
											"    pm.expect(response.version).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return hash\", () => {\r",
											"    pm.expect(response.hash).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Should return blueprint_spec\", () => {\r",
											"    pm.expect(response.blueprint_spec).to.exist;\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name"
									],
									"variable": [
										{
											"key": "name",
											"value": "{{workflow_name}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read Workflows by Name (non existent Name)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 204\", function () {\r",
											"    pm.response.to.have.status(204);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name"
									],
									"variable": [
										{
											"key": "name",
											"value": "{{$randomWord}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "List Processes",
					"item": [
						{
							"name": "Setup",
							"item": [
								{
									"name": "Create a Workflow",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id_for_list_process\",response.workflow_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create a Process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id",
												"create"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{workflow_id_for_list_process}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Create another Process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id",
												"create"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{workflow_id_for_list_process}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Create other Workflow",
									"event": [
										{
											"listen": "prerequest",
											"script": {
												"exec": [
													""
												],
												"type": "text/javascript"
											}
										},
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.collectionVariables.set(\"workflow_id\",response.workflow_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"body": {
											"mode": "raw",
											"raw": "{\r\n  \"name\": \"basic1\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{host}}/workflows",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows"
											]
										}
									},
									"response": []
								},
								{
									"name": "Create a process on the other workflow",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"const workflow_id = pm.collectionVariables.get(\"workflow_id\")\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow data\", () => {\r",
													"    pm.expect(response.workflow).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow version\", () => {\r",
													"    pm.expect(response.workflow.version).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow name\", () => {\r",
													"    pm.expect(response.workflow.name).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"Should return the workflow id\", () => {\r",
													"    pm.expect(response.workflow.id).to.exist;\r",
													"});\r",
													"\r",
													"pm.test(\"The workflow_id should be the same provided\", () => {\r",
													"    pm.expect(response.workflow.id).to.eql(workflow_id);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/:id/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												":id",
												"create"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{workflow_id}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "List Processes",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return more than 2 processes\", () => {\r",
											"    pm.expect(response).to.have.length(2);\r",
											"});\r",
											""
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/:id/processes",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										":id",
										"processes"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{workflow_id_for_list_process}}"
										}
									]
								}
							},
							"response": []
						}
					]
				}
			]
		},
		{
			"name": "Processes",
			"item": [
				{
					"name": "Setup",
					"item": [
						{
							"name": "Create basic workflow",
							"event": [
								{
									"listen": "prerequest",
									"script": {
										"exec": [
											"pm.collectionVariables.set(\"processes_workflow_name\",\"test_processes_any_name\")"
										],
										"type": "text/javascript"
									}
								},
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.collectionVariables.set(\"processes_basic_wid\",response.workflow_id)"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n  \"name\": \"processes_basic\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/workflows",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows"
									]
								}
							},
							"response": []
						},
						{
							"name": "Create userTask workflow",
							"event": [
								{
									"listen": "prerequest",
									"script": {
										"exec": [
											"pm.collectionVariables.set(\"processes_workflow_name\",\"test_processes_any_name\")"
										],
										"type": "text/javascript"
									}
								},
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.collectionVariables.set(\"processes_userTask_wid\",response.workflow_id)"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n  \"name\": \"processes_userTask\",\r\n  \"description\": \"userTask workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"UserTask\",\r\n        \"name\": \"User Task node\",\r\n        \"next\": \"3\",\r\n        \"lane_id\": \"1\",\r\n        \"parameters\": {\r\n          \"action\": \"do something\",\r\n          \"input\": {}\r\n        }\r\n      },\r\n      {\r\n        \"id\": \"3\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/workflows",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows"
									]
								}
							},
							"response": []
						},
						{
							"name": "Create timer workflow",
							"event": [
								{
									"listen": "prerequest",
									"script": {
										"exec": [
											""
										],
										"type": "text/javascript"
									}
								},
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.collectionVariables.set(\"processes_timer_wid\",response.workflow_id)"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n  \"name\": \"processes_timer\",\r\n  \"description\": \"timer workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"SystemTask\",\r\n        \"category\": \"timer\",\r\n        \"name\": \"timer node\",\r\n        \"next\": \"3\",\r\n        \"lane_id\": \"1\",\r\n        \"parameters\": {\r\n          \"input\": {},\r\n          \"timeout\": 3000\r\n        }\r\n      },\r\n      {\r\n        \"id\": \"3\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {}\r\n  }\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/workflows",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows"
									]
								}
							},
							"response": []
						},
						{
							"name": "Start a basic process #1",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 201\", function () {\r",
											"    pm.response.to.have.status(201);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return a process_id\", () => {\r",
											"    pm.expect(response.process_id).to.exist;\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name/start",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name",
										"start"
									],
									"variable": [
										{
											"key": "name",
											"value": "processes_basic"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Start a basic process #2",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 201\", function () {\r",
											"    pm.response.to.have.status(201);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return a process_id\", () => {\r",
											"    pm.expect(response.process_id).to.exist;\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name/start",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name",
										"start"
									],
									"variable": [
										{
											"key": "name",
											"value": "processes_basic"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Start a userTask process #1",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 201\", function () {\r",
											"    pm.response.to.have.status(201);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return a process_id\", () => {\r",
											"    pm.expect(response.process_id).to.exist;\r",
											"});\r",
											"\r",
											"pm.collectionVariables.set(\"processes_userTask_pid\", response.process_id)"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name/start",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name",
										"start"
									],
									"variable": [
										{
											"key": "name",
											"value": "processes_userTask"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Start a userTask process #2",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 201\", function () {\r",
											"    pm.response.to.have.status(201);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return a process_id\", () => {\r",
											"    pm.expect(response.process_id).to.exist;\r",
											"});\r",
											"\r",
											"pm.collectionVariables.set(\"processes_userTask_pid2\", response.process_id)"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name/start",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name",
										"start"
									],
									"variable": [
										{
											"key": "name",
											"value": "processes_userTask"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Start a timer process #1",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 201\", function () {\r",
											"    pm.response.to.have.status(201);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return a process_id\", () => {\r",
											"    pm.expect(response.process_id).to.exist;\r",
											"});\r",
											"\r",
											"pm.collectionVariables.set(\"processes_timer_pid\", response.process_id)"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/:name/start",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										":name",
										"start"
									],
									"variable": [
										{
											"key": "name",
											"value": "processes_timer"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "List Processes",
					"item": [
						{
							"name": "List Processes",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return more than 4 processes\", () => {\r",
											"    pm.expect(response.length).to.be.at.least(4);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										""
									]
								}
							},
							"response": []
						},
						{
							"name": "List Processes (workflow_id filter)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return 2 processes\", () => {\r",
											"    pm.expect(response.length).to.equal(2);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/?workflow_id={{processes_basic_wid}}",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										""
									],
									"query": [
										{
											"key": "workflow_id",
											"value": "{{processes_basic_wid}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "List Available",
					"item": [
						{
							"name": "List Available Processes",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"const filtered = response.filter(item => item.workflow_id === userTaskWid);\r",
											"pm.test(\"Should return 2 processes\", () => {\r",
											"    pm.expect(filtered.length).to.equal(2);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/available",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										"available"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "List Done",
					"item": [
						{
							"name": "List Done Processes (Expect 0)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"const filtered = response.filter(item => item.workflow_id === userTaskWid);\r",
											"pm.test(\"Should return 0 processes\", () => {\r",
											"    pm.expect(filtered.length).to.equal(0);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/done",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										"done"
									]
								}
							},
							"response": []
						},
						{
							"name": "Commit Task",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/commit",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"commit"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{processes_userTask_pid}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Push Task",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 202\", function () {\r",
											"    pm.response.to.have.status(202);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/push",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"push"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{processes_userTask_pid}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "List Done Processes (Expect 1)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"const filtered = response.filter(item => item.workflow_id === userTaskWid);\r",
											"pm.test(\"Should return 1 process\", () => {\r",
											"    pm.expect(filtered.length).to.equal(1);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/done",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										"done"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Read State",
					"item": [
						{
							"name": "Read State (existing process)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should the right workflow_id\", () => {\r",
											"    pm.expect(response.workflow_id).to.equal(userTaskWid);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/state",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"state"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{processes_userTask_pid}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read State (random process)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 404\", function () {\r",
											"    pm.response.to.have.status(404);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/state",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"state"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{$guid}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Read History",
					"item": [
						{
							"name": "Read History (existing process)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should the right workflow_id\", () => {\r",
											"    pm.expect(response.length).to.equal(5);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/history",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"history"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{processes_userTask_pid}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read History (random process)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 404\", function () {\r",
											"    pm.response.to.have.status(404);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/state",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"state"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{$guid}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Read Activity",
					"item": [
						{
							"name": "Read Activity (existing userTask process)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should the right workflow_id\", () => {\r",
											"    pm.expect(response.id).to.exist;\r",
											"});\r",
											"\r",
											"pm.collectionVariables.set(\"processes_amid\", response.id)"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/activity",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"activity"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{processes_userTask_pid2}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read Activity (timer process)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 204\", function () {\r",
											"    pm.response.to.have.status(204);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/activity",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"activity"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{processes_timer_pid}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read Activity (random process)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 404\", function () {\r",
											"    pm.response.to.have.status(404);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/activity",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"activity"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{$guid}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Read Activity Manager",
					"item": [
						{
							"name": "Read ActivityManager (existing ActivityManager)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const amid = pm.collectionVariables.get(\"processes_amid\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should the right activity_manager_id\", () => {\r",
											"    pm.expect(response.id).to.equal(amid);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/activityManager/:id",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										"activityManager",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{processes_amid}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Read ActivityManager (random id)",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"pm.test(\"Status code is 404\", function () {\r",
											"    pm.response.to.have.status(404);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/activityManager/:id",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										"activityManager",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{$guid}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Process Run",
					"item": [
						{
							"name": "Main Flow",
							"item": [
								{
									"name": "Create a userTask process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.exist;\r",
													"});\r",
													"\r",
													"pm.collectionVariables.set(\"processes_run_pid\", response.process_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/name/:name/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												"name",
												":name",
												"create"
											],
											"variable": [
												{
													"key": "name",
													"value": "processes_userTask"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Status should be unstarted\", () => {\r",
													"    pm.expect(response.current_status).to.equal(\"unstarted\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_run_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Run Process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:id/run",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":id",
												"run"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{processes_run_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Status should be waiting\", () => {\r",
													"    pm.expect(response.current_status).to.equal(\"waiting\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_run_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Run Process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:id/run",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":id",
												"run"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{processes_run_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Status should be finished\", () => {\r",
													"    pm.expect(response.current_status).to.equal(\"finished\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_run_pid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Stopped Process",
							"item": [
								{
									"name": "Run Process (finished)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 422\", function () {\r",
													"    pm.response.to.have.status(422);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:id/abort",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":id",
												"abort"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{processes_run_pid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Random Process",
							"item": [
								{
									"name": "Run Process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 404\", function () {\r",
													"    pm.response.to.have.status(404);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:id/run",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":id",
												"run"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{$guid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						}
					]
				},
				{
					"name": "Process Abort",
					"item": [
						{
							"name": "Active Process",
							"item": [
								{
									"name": "Create a userTask process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.exist;\r",
													"});\r",
													"\r",
													"pm.collectionVariables.set(\"processes_abort_pid\", response.process_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/name/:name/create",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												"name",
												":name",
												"create"
											],
											"variable": [
												{
													"key": "name",
													"value": "processes_userTask"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State (unstarted)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Status should be unstarted\", () => {\r",
													"    pm.expect(response.current_status).to.equal(\"unstarted\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_abort_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Abort Process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:id/abort",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":id",
												"abort"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{processes_abort_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State (interrupted)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Status should be interrupted\", () => {\r",
													"    pm.expect(response.current_status).to.equal(\"interrupted\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_abort_pid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Stopped Process",
							"item": [
								{
									"name": "Abort Process (interrupted)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 422\", function () {\r",
													"    pm.response.to.have.status(422);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:id/abort",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":id",
												"abort"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{processes_abort_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Abort Process (finished)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 422\", function () {\r",
													"    pm.response.to.have.status(422);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:id/abort",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":id",
												"abort"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{processes_run_pid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Random Process",
							"item": [
								{
									"name": "Abort Process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 404\", function () {\r",
													"    pm.response.to.have.status(404);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:id/abort",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":id",
												"abort"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{$guid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						}
					]
				},
				{
					"name": "Commit Activity",
					"item": [
						{
							"name": "Existing Activity",
							"item": [
								{
									"name": "Start a userTask process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.exist;\r",
													"});\r",
													"\r",
													"pm.collectionVariables.set(\"processes_commit_pid\", response.process_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/name/:name/start",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												"name",
												":name",
												"start"
											],
											"variable": [
												{
													"key": "name",
													"value": "processes_userTask"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State (waiting)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Process should be waiting\", () => {\r",
													"    pm.expect(response.current_status).to.equal(\"waiting\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_commit_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Commit",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/commit",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"commit"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_commit_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State (keep waiting)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Process should be waiting\", () => {\r",
													"    pm.expect(response.current_status).to.equal(\"waiting\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_commit_pid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Random Activity",
							"item": [
								{
									"name": "Commit",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 404\", function () {\r",
													"    pm.response.to.have.status(404);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/commit",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"commit"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{$guid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						}
					]
				},
				{
					"name": "Push Activity",
					"item": [
						{
							"name": "Existing Activity",
							"item": [
								{
									"name": "Start a userTask process",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 201\", function () {\r",
													"    pm.response.to.have.status(201);\r",
													"});\r",
													"\r",
													"pm.test(\"Should return a process_id\", () => {\r",
													"    pm.expect(response.process_id).to.exist;\r",
													"});\r",
													"\r",
													"pm.collectionVariables.set(\"processes_push_pid\", response.process_id)"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/workflows/name/:name/start",
											"host": [
												"{{host}}"
											],
											"path": [
												"workflows",
												"name",
												":name",
												"start"
											],
											"variable": [
												{
													"key": "name",
													"value": "processes_userTask"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State (waiting)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Process should be waiting\", () => {\r",
													"    pm.expect(response.current_status).to.equal(\"waiting\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_push_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Commit",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/commit",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"commit"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_push_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Push",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"pm.test(\"Status code is 202\", function () {\r",
													"    pm.response.to.have.status(202);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/push",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"push"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_push_pid}}"
												}
											]
										}
									},
									"response": []
								},
								{
									"name": "Read State (not waiting)",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"const userTaskWid = pm.collectionVariables.get(\"processes_userTask_wid\");\r",
													"\r",
													"pm.test(\"Status code is 200\", function () {\r",
													"    pm.response.to.have.status(200);\r",
													"});\r",
													"\r",
													"pm.test(\"Process should be waiting\", () => {\r",
													"    pm.expect(response.current_status).not.to.equal(\"waiting\");\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/state",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"state"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{processes_push_pid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						},
						{
							"name": "Random Activity",
							"item": [
								{
									"name": "Commit",
									"event": [
										{
											"listen": "test",
											"script": {
												"exec": [
													"const response = pm.response.json();\r",
													"\r",
													"pm.test(\"Status code is 404\", function () {\r",
													"    pm.response.to.have.status(404);\r",
													"});"
												],
												"type": "text/javascript"
											}
										}
									],
									"request": {
										"method": "POST",
										"header": [],
										"url": {
											"raw": "{{host}}/processes/:pid/commit",
											"host": [
												"{{host}}"
											],
											"path": [
												"processes",
												":pid",
												"commit"
											],
											"variable": [
												{
													"key": "pid",
													"value": "{{$guid}}"
												}
											]
										}
									},
									"response": []
								}
							]
						}
					]
				}
			]
		},
		{
			"name": "Activity Manager",
			"item": []
		},
		{
			"name": "Activities",
			"item": []
		},
		{
			"name": "States",
			"item": [
				{
					"name": "Setup",
					"item": [
						{
							"name": "Create a Token",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.environment.set(\"token\", response.jwtToken);"
										],
										"type": "text/javascript"
									}
								},
								{
									"listen": "prerequest",
									"script": {
										"exec": [
											""
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n    \"actor_id\": \"{{$guid}}\"\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/token",
									"host": [
										"{{host}}"
									],
									"path": [
										"token"
									]
								}
							},
							"response": []
						},
						{
							"name": "Create workflow for testing",
							"event": [
								{
									"listen": "prerequest",
									"script": {
										"exec": [
											""
										],
										"type": "text/javascript"
									}
								},
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 201\", function () {\r",
											"    pm.response.to.have.status(201);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"body": {
									"mode": "raw",
									"raw": "{\r\n  \"name\": \"test_state_routes\",\r\n  \"description\": \"system workflow\",\r\n  \"blueprint_spec\": {\r\n    \"requirements\": [\r\n      \"core\"\r\n    ],\r\n    \"prepare\": [],\r\n    \"nodes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"type\": \"Start\",\r\n        \"name\": \"Start node\",\r\n        \"parameters\": {\r\n          \"input_schema\": {}\r\n        },\r\n        \"next\": \"2\",\r\n        \"lane_id\": \"1\"\r\n      },\r\n      {\r\n        \"id\": \"2\",\r\n        \"type\": \"Finish\",\r\n        \"name\": \"Finish node\",\r\n        \"next\": null,\r\n        \"parameters\": {\r\n            \"input\": {\r\n                \"paramsField\": { \"$ref\": \"parameters.one\" },\r\n                \"envField\": { \"$ref\": \"environment.KNEX_ENV\" }\r\n            }\r\n        },\r\n        \"lane_id\": \"1\"\r\n      }\r\n    ],\r\n    \"lanes\": [\r\n      {\r\n        \"id\": \"1\",\r\n        \"name\": \"the_only_lane\",\r\n        \"rule\": [\r\n          \"fn\",\r\n          [\r\n            \"&\",\r\n            \"args\"\r\n          ],\r\n          true\r\n        ]\r\n      }\r\n    ],\r\n    \"environment\": {\r\n        \"KNEX_ENV\": \"KNEX_ENV\"\r\n    },\r\n    \"parameters\": {\r\n        \"one\": \"field\"\r\n    }\r\n  }\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{host}}/workflows",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows"
									]
								}
							},
							"response": []
						},
						{
							"name": "Start Process by Name",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 201\", function () {\r",
											"    pm.response.to.have.status(201);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return a process_id\", () => {\r",
											"    pm.expect(response.process_id).to.exist;\r",
											"});\r",
											"\r",
											"pm.environment.set(\"process_id\", response.process_id);"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{host}}/workflows/name/test_state_routes/start",
									"host": [
										"{{host}}"
									],
									"path": [
										"workflows",
										"name",
										"test_state_routes",
										"start"
									]
								}
							},
							"response": []
						},
						{
							"name": "Read History",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.environment.set(\"stateId\", response[0].id);"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/processes/:pid/history",
									"host": [
										"{{host}}"
									],
									"path": [
										"processes",
										":pid",
										"history"
									],
									"variable": [
										{
											"key": "pid",
											"value": "{{process_id}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "GET /:id",
					"item": [
						{
							"name": "Should return the state requested",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const stateId = pm.environment.get(\"stateId\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"The id should be the same from the request\", function () {\r",
											"    pm.expect(response.id).to.equal(stateId);\r",
											"});\r",
											"\r",
											"pm.test(\"The step number should be 3 considering the tested blueprint\", function () {\r",
											"    pm.expect(response.step_number).to.equal(3);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return environment\", () => {\r",
											"    pm.expect(response.environment).to.exist;\r",
											"})\r",
											"\r",
											"pm.test(\"Should return parameters\", () => {\r",
											"    pm.expect(response.parameters).to.exist;\r",
											"})\r",
											""
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/states/:id",
									"host": [
										"{{host}}"
									],
									"path": [
										"states",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{stateId}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Should return 404 for a random id",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const stateId = pm.environment.get(\"stateId\");\r",
											"\r",
											"pm.test(\"Status code is 404\", function () {\r",
											"    pm.response.to.have.status(404);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return an error message\", function () {\r",
											"    pm.expect(response.message).to.exist;\r",
											"});\r",
											""
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/states/:id",
									"host": [
										"{{host}}"
									],
									"path": [
										"states",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{$guid}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "GET /process/:id",
					"item": [
						{
							"name": "Should return 400 if no parameter is provided",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const stateId = pm.environment.get(\"stateId\");\r",
											"\r",
											"pm.test(\"Status code is 400\", function () {\r",
											"    pm.response.to.have.status(400);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return an error message\", function () {\r",
											"    pm.expect(response.message).to.exist;\r",
											"});\r",
											""
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/states/process/:id",
									"host": [
										"{{host}}"
									],
									"path": [
										"states",
										"process",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{process_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Should work for step number",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const stateId = pm.environment.get(\"stateId\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return the correct step number\", function () {\r",
											"    pm.expect(response.step_number).to.equal(2);\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/states/process/:id?stepNumber=2",
									"host": [
										"{{host}}"
									],
									"path": [
										"states",
										"process",
										":id"
									],
									"query": [
										{
											"key": "stepNumber",
											"value": "2"
										}
									],
									"variable": [
										{
											"key": "id",
											"value": "{{process_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Should work for node id",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"const response = pm.response.json();\r",
											"const stateId = pm.environment.get(\"stateId\");\r",
											"\r",
											"pm.test(\"Status code is 200\", function () {\r",
											"    pm.response.to.have.status(200);\r",
											"});\r",
											"\r",
											"pm.test(\"Should return 2 states\", function () {\r",
											"    pm.expect(response.states).to.have.length(2);\r",
											"});\r",
											"\r",
											"pm.test(\"Parameters should be in root object\", function () {\r",
											"    pm.expect(response.parameters).to.exist;\r",
											"});\r",
											"\r",
											"pm.test(\"Environment should be in root object\", function () {\r",
											"    pm.expect(response.environment).to.exist;\r",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{host}}/states/process/:id?nodeId=1",
									"host": [
										"{{host}}"
									],
									"path": [
										"states",
										"process",
										":id"
									],
									"query": [
										{
											"key": "nodeId",
											"value": "1"
										}
									],
									"variable": [
										{
											"key": "id",
											"value": "{{process_id}}"
										}
									]
								}
							},
							"response": []
						}
					]
				}
			],
			"auth": {
				"type": "bearer",
				"bearer": [
					{
						"key": "token",
						"value": "{{token}}",
						"type": "string"
					}
				]
			},
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"type": "text/javascript",
						"exec": [
							""
						]
					}
				},
				{
					"listen": "test",
					"script": {
						"type": "text/javascript",
						"exec": [
							""
						]
					}
				}
			]
		},
		{
			"name": "Indexer",
			"item": []
		}
	],
	"auth": {
		"type": "bearer",
		"bearer": [
			{
				"key": "token",
				"value": "{{token}}",
				"type": "string"
			}
		]
	},
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		}
	],
	"variable": [
		{
			"key": "package_id",
			"value": ""
		},
		{
			"key": "workflow_id",
			"value": ""
		},
		{
			"key": "actor_id",
			"value": ""
		},
		{
			"key": "workflow_name",
			"value": ""
		},
		{
			"key": "workflow_id_for_delete",
			"value": ""
		},
		{
			"key": "workflow_id_for_list_process",
			"value": ""
		},
		{
			"key": "workflow_name_for_create",
			"value": ""
		},
		{
			"key": "workflow_id_for_create",
			"value": ""
		},
		{
			"key": "workflow_name_for_start",
			"value": ""
		},
		{
			"key": "workflow_id_for_start",
			"value": ""
		},
		{
			"key": "processes_workflow_name",
			"value": ""
		},
		{
			"key": "processes_basic_wid",
			"value": ""
		},
		{
			"key": "processes_userTask_wid",
			"value": ""
		},
		{
			"key": "processes_timer_wid",
			"value": ""
		},
		{
			"key": "processes_userTask_pid",
			"value": ""
		},
		{
			"key": "processes_userTask_pid2",
			"value": ""
		},
		{
			"key": "processes_timer_pid",
			"value": ""
		},
		{
			"key": "processes_amid",
			"value": ""
		},
		{
			"key": "processes_run_pid",
			"value": ""
		},
		{
			"key": "processes_abort_pid",
			"value": ""
		},
		{
			"key": "processes_commit_pid",
			"value": ""
		},
		{
			"key": "processes_push_pid",
			"value": ""
		}
	]
}