Executing Workflow Actions

Certain types of activities on the platform must be done in a specific sequence. These are often managed by workflows. For example, generally an app is created, then a Sandbox contract is requested, and then a Production contract is requested. At some point the app might be deleted. These actions are sequential, at least in part. An app must be created before a contract is requested; an app must exist in order to be deleted.

Some examples of workflow actions are: requesting or approving an API contract, sending a group membership invitation, or changing the status of a ticket.

These actions, which change a resource from one state to another, are controlled by the Execute Workflow Action operation. This applies to the following services:

  • Groups: the POST /api/groups/requests/{MembershipRequestID}/actions operation
  • Tickets: the POST tickets/{ticketID}/actions operation
  • Contracts: the POST /api/contracts/{ContractDN}/actions operation

In each case, the operation verifies two things before executing the workflow action:

  • The requestor is authorized to make the state change. For example, an API admin can approve or deny a request from an app to connect to the API; an app team member can cancel the app's request for access to an API.
  • The state change is valid for the resource. To be valid, it must satisfy two conditions:
    • The "from" state is the current state of the resource.
    • The "to" state is a valid state for the resource to transition to. For example, a ticket can change state from Closed to Reopened but not from Closed to Resolved.