Workflows
A
Workflow
is a prototype collection of stepwise Workstep
prototypes corresponding to a real-world business process. Workflows provide a means of defining the relationships, rulesets and order of execution to be implemented in a baseline business process. While the baseline protocol standard defines a
WorkflowInstance
, the provisioning and management of these instances is left to the implementation provider. Provide Baseline introduces a Workflow
staging layer that enables drafting, templating, deployment and automatic real-time generation of workflow instances. Once deployed, a Workflow
is referenced as a prototype for the spawning of WorkflowInstance
executions as qualifying trigger events occur.Workflows are useful for designing end-to-end baseline processes as they pertain to a specific use case. Composed of
Workstep
objects containing zero-knowledge proofs, a Workflow
can be used to verifiably synchronize the entire lifecycle of any shared business process without exposing any sensitive data. Refers to the output of a zero-knowledge prover; the result of a successfully executed
Workstep
. In a baseline context, the proof resulting from a completed workflow instance provides verifiable proof that the data shared by participants in the workflow remained synchronized throughout the entire process.Workflows are composed of individual stepwise processes called worksteps. A workstep is characterized by input, the deterministic application of a set of logic rules and data to that input, and the generation of a verifiably deterministic and verifiably correct output. Worksteps output a
proof
by way of a prover
. A workflow instance is a real-time execution of a deployed workflow. Workflow instances are spawned when conditions specified in the prime-workstep trigger are met. A
Workflow
is capable of spawning n number of workflow instances. A WorkflowInstance
is distinguishable from a Workflow
by the presence of a value in the workflow_id
field. Status
is used to define the stages in a workflow lifecycle. Status | Description |
---|---|
draft | inactive; is not being referenced by any workflow instances or spawning new workflow instances. |
pending_deployment | deployment initialized. Included worksteps provisioning. |
deployed | active; able to spawn a WorkflowInstance as trigger events occur. Deployed workflows cannot be edited and must be versioned to create changes |
deprecated | inactive; has been replaced by a new version or removed from use |
When updates are needed for a deployed
Workflow
, versioning is required to avoid conflicts with previously deployed iterations and related workflow instances. A Workflow
is required to have a version in order to be deployed. The Workflow API is intended to function within the context of an
Organization
acting as a participant in a Workgroup
.Within this context, it is assumed that:
- an
Organization
scoped JWT is available for use Organization
is a participant in aWorkgroup
Field | Type | Description |
---|---|---|
created_at | date/time | timestamp of Workflow creation |
deployed_at | date/time | timestamp of Workflow deployment |
id | uuid | id of Workflow |
metadata | object | arbitrary data pertaining to Workflow |
participants | array | list of Participant objects included in a Workflow |
shield | string | address of shield contract |
status | string | current Workflow status |
version | string | current Workflow version; required for deployment |
workgroup_id | uuid | id of target Workgroup |
workflow_id | uuid | when null , indicates record is Workflow . Non-null value indicates record is a WorkflowInstance |
worksteps | array | list of Workstep objects included in a Workflow |
Returns a list of
Workflow
objectsget
https://baseline.provide.services
/api/v1/workflows
List Workflows
Creates a
Workflow
post
https://baseline.provide.services
/api/v1/workflows
Create Workflow
Retrieves details for a specified
Workflow
get
https://baseline.provide.services
/api/v1/workflows/:id
Get Workflow Details
Deletes a specified
Workflow
; Workflows with a status of pending_deployment
, deployed
or deprecated
cannot be deleted.delete
https://baseline.provide.services
/api/v1/workflows/:id
Delete a Workflow
Deploying a workflow provisions it for use amongst the participants in the associated workgroup within the defined parameters.
Once deployed, a workflow begins actively listening for workstep trigger events, spawning new workflow instance executions each time the prime-workstep is triggered. A deployed
Workflow
cannot be updated and must be versioned and redeployed to introduce changes.post
https://baseline.provide.services
/api/v1/workflows/:id/deploy
Deploy a Workflow
Updating a
Workflow
is useful for versioning and updating status. Workflows with a status of pending_deployment
, deployed
or deprecated
cannot be updated.put
https://baseline.provide.services
/api/v1/workflows/:id
Update a Workflow
Returns a list of
Workstep
objects in a specified Workflow
put
https://baseline.provide.services
/api/v1/workflows/:id/worksteps
List Worksteps in a Workflow
Last modified 1yr ago