Dapr provides users with the ability to interact with workflows through its built-in workflow engine, which is implemented using Dapr Actors. This workflow engine is accessed using the name dapr
in API calls as the workflowComponentName
.
Start a workflow instance with the given name and optionally, an instance ID.
POST http://localhost:<daprPort>/v1.0/workflows/<workflowComponentName>/<workflowName>/start[?instanceID=<instanceID>]
Note that workflow instance IDs can only contain alphanumeric characters, underscores, and dashes.
Parameter | Description |
---|---|
workflowComponentName | Use dapr for Dapr Workflows |
workflowName | Identify the workflow type |
instanceID | (Optional) Unique value created for each run of a specific workflow |
Any request content will be passed to the workflow as input. The Dapr API passes the content as-is without attempting to interpret it.
Code | Description |
---|---|
202 | Accepted |
400 | Request was malformed |
500 | Request formatted correctly, error in dapr code |
The API call will provide a response similar to this:
{
"instanceID": "12345678"
}
Terminate a running workflow instance with the given name and instance ID.
POST http://localhost:<daprPort>/v1.0/workflows/<workflowComponentName>/<instanceId>/terminate
Terminating a workflow terminates all of the child workflows created by the workflow instance.
Terminating a workflow has no effect on any in-flight activity executions that were started by the terminated instance.
Parameter | Description |
---|---|
workflowComponentName | Use dapr for Dapr Workflows |
instanceId | Unique value created for each run of a specific workflow |
Code | Description |
---|---|
202 | Accepted |
400 | Request was malformed |
500 | Request formatted correctly, error in dapr code |
This API does not return any content.
For workflow components that support subscribing to external events, such as the Dapr Workflow engine, you can use the following “raise event” API to deliver a named event to a specific workflow instance.
POST http://localhost:<daprPort>/v1.0/workflows/<workflowComponentName>/<instanceID>/raiseEvent/<eventName>
Parameter | Description |
---|---|
workflowComponentName | Use dapr for Dapr Workflows |
instanceId | Unique value created for each run of a specific workflow |
eventName | The name of the event to raise |
Code | Description |
---|---|
202 | Accepted |
400 | Request was malformed |
500 | Request formatted correctly, error in dapr code or underlying component |
None.
Pause a running workflow instance.
POST http://localhost:<daprPort>/v1.0/workflows/<workflowComponentName>/<instanceId>/pause
Parameter | Description |
---|---|
workflowComponentName | Use dapr for Dapr Workflows |
instanceId | Unique value created for each run of a specific workflow |
Code | Description |
---|---|
202 | Accepted |
400 | Request was malformed |
500 | Error in Dapr code or underlying component |
None.
Resume a paused workflow instance.
POST http://localhost:<daprPort>/v1.0/workflows/<workflowComponentName>/<instanceId>/resume
Parameter | Description |
---|---|
workflowComponentName | Use dapr for Dapr Workflows |
instanceId | Unique value created for each run of a specific workflow |
Code | Description |
---|---|
202 | Accepted |
400 | Request was malformed |
500 | Error in Dapr code |
None.
Purge the workflow state from your state store with the workflow’s instance ID.
POST http://localhost:<daprPort>/v1.0/workflows/<workflowComponentName>/<instanceId>/purge
COMPLETED
, FAILED
, or TERMINATED
workflows can be purged.Parameter | Description |
---|---|
workflowComponentName | Use dapr for Dapr Workflows |
instanceId | Unique value created for each run of a specific workflow |
Code | Description |
---|---|
202 | Accepted |
400 | Request was malformed |
500 | Error in Dapr code |
None.
Get information about a given workflow instance.
GET http://localhost:<daprPort>/v1.0/workflows/<workflowComponentName>/<instanceId>
Parameter | Description |
---|---|
workflowComponentName | Use dapr for Dapr Workflows |
instanceId | Unique value created for each run of a specific workflow |
Code | Description |
---|---|
200 | OK |
400 | Request was malformed |
500 | Error in Dapr code |
The API call will provide a JSON response similar to this:
{
"createdAt": "2023-01-12T21:31:13Z",
"instanceID": "12345678",
"lastUpdatedAt": "2023-01-12T21:31:13Z",
"properties": {
"property1": "value1",
"property2": "value2",
},
"runtimeStatus": "RUNNING",
}
Parameter | Description |
---|---|
runtimeStatus | The status of the workflow instance. Values include: "RUNNING" , "COMPLETED" , "CONTINUED_AS_NEW" , "FAILED" , "CANCELED" , "TERMINATED" , "PENDING" , "SUSPENDED" |