Workflow User API
Workflow engine is configured by zen. We do not support it and do not recommend to use it anymore. Please, use any other workflow engine e.g. Temporal.
Since the 2405 release, using Aidbox in FHIR schema validation engine is recommended, which is incompatible with zen or Entity/Attribute options.
Workflow User API allows users to manually control Aidbox workflows by RPC methods.
awf.workflow/create-and-execute
Creates an instance of a defined workflow and makes it ready to be executed immediately or at a specified time.
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | false | Identifier of workflow (If not provided, will be auto-generated). |
| label | string | false | Human- or machine-readable description of workflow instance. Example: Import Patient resources |
| definition | string | true | Definition of predefined workflow or custom-defined workflow. Example: aidbox.bulk/import-resources-workflow |
| params | object | true | The input parameters described in the workflow definition. |
| executeAt | string | false | Time at which the workflow will become ready. If not provided - workflow will become ready immediately. Example: 2023-05-03T13:30:43 |
Result:
| Parameter | Type | Description |
|---|---|---|
| resources | object[] | Created AidboxWorkflow resources. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.workflow/create-and-execute
params:
definition: aidbox.bulk/import-resources-workflow
params:
type: aidbox
inputs:
- url: https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
resourceType: Organization
result:
resource:
params:
type: aidbox
inputs:
- url: >-
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
resourceType: Organization
status: in-progress
definition: aidbox.bulk/import-resources-workflow
id: >-
abbc317d-f9b0-415e-b5b5-df059e000060
resourceType: AidboxWorkflow
meta:
lastUpdated: '2023-05-22T11:55:06.570348Z'
createdAt: '2023-05-22T11:55:06.570348Z'
versionId: '18039'
awf.workflow/cancel
Cancels a workflow that is not in status done, canceling recursively all activities started by that workflow.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | true | Id of the workflow to be canceled. |
Result:
| Parameter | Type | Description |
|---|---|---|
| resource | object | The canceled AidboxWorkflow resource. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.workflow/cancel
params:
id: af10a9cf-3313-45f0-bbf4-7d3bf3a4da37
result:
resource:
params:
type: aidbox
inputs:
- url: https://synthea-public.s3.amazonaws.com/2/Claim.ndjson.gz
resourceType: Claim
contentEncoding: gzip
status: done
outcome: canceled
definition: aidbox.bulk/import-resources-workflow
id: >-
af10a9cf-3313-45f0-bbf4-7d3bf3a4da37
resourceType: AidboxWorkflow
meta:
lastUpdated: '2023-06-15T12:58:31.362126Z'
createdAt: '2023-06-15T12:58:22.604066Z'
versionId: '712'
status: 422
error:
type: workflow-has-been-done
message: >-
Workflow id:'af10a9cf-3313-45f0-bbf4-7d3bf3a4da37' has already been done.
Couldn't cancel it.
awf.workflow/status
Returns the status of a workflow instance with the specified id.
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | true | Id of the workflow whose status will be returned. |
| include-activities? | boolean | false | If true , includes tasks and another workflows started by workflow.Default: false |
| include-decisions? | boolean | false | If true, includes all workflow's decision tasks.Default: false |
Result:
| Parameter | Type | Description |
|---|---|---|
| resource | object | AidboxWorkflow resource. |
| activities | object[] | Activities started by workflow. |
| decisions | object[] | Decision task resources of workflow. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.workflow/status
params:
id: abbc317d-f9b0-415e-b5b5-df059e000060
include-activities?: true
include-decisions?: true
result:
resource:
params:
type: aidbox
inputs:
- url: >-
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
resourceType: Organization
result:
message: All input files imported, 0 new resources loaded
total-files: 1
total-imported-resources: 0
status: done
outcome: succeeded
definition: aidbox.bulk/import-resources-workflow
id: >-
abbc317d-f9b0-415e-b5b5-df059e000060
resourceType: AidboxWorkflow
meta:
lastUpdated: '2023-05-22T11:55:07.427230Z'
createdAt: '2023-05-22T11:55:06.570348Z'
versionId: '18073'
activities:
- definition: aidbox.bulk/import-resource-task
meta:
lastUpdated: '2023-05-22T11:55:07.379041Z'
createdAt: '2023-05-22T11:55:06.673539Z'
versionId: '18061'
params:
type: aidbox
input:
url: >-
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
resourceType: Organization
retryCount: 1
outcome: succeeded
resourceType: AidboxTask
requester:
id: >-
abbc317d-f9b0-415e-b5b5-df059e000060
resourceType: AidboxWorkflow
status: done
result:
imported-resources: 0
execId: f5fd6d24-b240-4225-87c7-c57538bf083c
label: >-
Organization
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
id: >-
6e718350-0fc1-4bdd-b8e2-d73890f4fff7
decisions:
- definition: awf.workflow/decision-task
meta:
lastUpdated: '2023-05-22T11:55:06.673539Z'
createdAt: '2023-05-22T11:55:06.570348Z'
versionId: '18049'
params:
event: awf.workflow.event/workflow-init
retryCount: 1
outcome: succeeded
workflow-definition: aidbox.bulk/import-resources-workflow
resourceType: AidboxTask
requester:
id: >-
abbc317d-f9b0-415e-b5b5-df059e000060
resourceType: AidboxWorkflow
status: done
result:
- action: awf.workflow.action/schedule-task
task-request:
label: >-
Organization
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
params:
type: aidbox
input:
url: >-
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
resourceType: Organization
definition: aidbox.bulk/import-resource-task
execId: 7d8d6ad5-fbd8-4bce-b7a0-daaf8cd91f13
id: >-
97c7b246-de63-4302-927d-6dc160d332af
- definition: awf.workflow/decision-task
meta:
lastUpdated: '2023-05-22T11:55:07.427230Z'
createdAt: '2023-05-22T11:55:07.379041Z'
versionId: '18071'
params:
event: awf.workflow.event/task-completed
task-id: 6e718350-0fc1-4bdd-b8e2-d73890f4fff7
retryCount: 1
outcome: succeeded
workflow-definition: aidbox.bulk/import-resources-workflow
resourceType: AidboxTask
requester:
id: >-
abbc317d-f9b0-415e-b5b5-df059e000060
resourceType: AidboxWorkflow
status: done
result:
- action: awf.workflow.action/complete-workflow
result:
message: All input files imported, 0 new resources loaded
total-files: 1
total-imported-resources: 0
execId: e7820ed2-92e7-4635-846d-35331051b466
id: >-
439dd4a4-7d70-4cf2-85ce-244878a2c910
awf.workflow/list
Returns the list of all workflows.
Params:
| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | object | false | |
| filter.status | string | false | Include workflow with specified status. Possible values: created, in-progress, done |
| filter.outcome | string | false | Include workflow with status done and specified outcome.Possible values: succeeded, failed |
| filter.ilike | string | false | ilike search by resource content |
| sort | object | false | May contain either createdAt or lastUpdated. |
| sort.createdAt | string | false | Sorts result by createdAt DateTime.Possible values: asc, desc |
| sort.lastUpdated | string | false | Sorts result by lastUpdated DateTime.Possible values: asc, desc |
Result:
| Parameter | Type | Description |
|---|---|---|
| resources | object[] | AidboxWorkflow resources. |
POST /rpc
content-type: text/yaml
accept: text/yaml
method: awf.workflow/list
params:
filter:
ilike: import
result:
resources:
- definition: aidbox.bulk/import-resource-task
meta:
lastUpdated: '2023-04-24T09:30:51.562261Z'
createdAt: '2023-04-24T09:30:50.888731Z'
versionId: '128371'
params:
type: aidbox
input:
url: >-
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
resourceType: Organization
contentEncoding: gzip
retryCount: 1
outcome: succeeded
resourceType: AidboxTask
requester:
id: >-
38239f30-2e67-45fb-8e67-992c5c1b350e
resourceType: AidboxWorkflow
status: done
result:
imported-resources: 100
execId: ea82769d-e083-461c-8cb0-3427ed466f19
label: >-
Organization
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
id: >-
c9555892-6221-42b4-9b34-1428a18e893result:
resources:
- params:
type: aidbox
inputs:
- url: >-
https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gz
resourceType: Organization
result:
message: All input files imported, 0 new resources loaded
total-files: 1
total-imported-resources: 0
status: done
outcome: succeeded
definition: aidbox.bulk/import-resources-workflow
id: >-
abbc317d-f9b0-415e-b5b5-df059e000060
resourceType: AidboxWorkflow
meta:
lastUpdated: '2023-05-22T11:55:07.427230Z'
createdAt: '2023-05-22T11:55:06.570348Z'
versionId: '18073'