Task that will be in progress until a resource with the specified attributes would be persisted in the database. It is used for some workflow cases when the workflow should wait for resource creation.
Decision tasks - special tasks that form the body of the workflow and partially execute it in certain iterations. Decision tasks are created when a workflow is started or as a response on another event to decide what action should be taken. Actions are predefined in task execution operations that are used as a response to a completed decision task. Actions are used in certain cases, such as starting a new task.
Decision tasks should also include an event that should represent the purpose of that task as a parameter.
Id of completed workflow instance. Required only if event type isawf.workflow.event/workflow-completed
task-id
string
Id of completed task instance. Required only if event type isawf.workflow.event/task-completed
Event types
Event type
Description
awf.workflow.event/workflow-init
First task execution in the context of the current workflow instance. The decision task contains this event if it was started using the awf.workflow/create-and-execute method.
awf.workflow.event/task-completed
Reaction to a completed task started by the current workflow. Includes the ID of the completed task instance in the decision task parameters.
awf.workflow.event/workflow-completed
Reaction to a completed workflow started by the current workflow. Includes the ID of the completed workflow instance in the decision task parameters.
Object with task execution request. Requiredonly if action type isawf.workflow.action/schedule-task or
awf.workflow.action/schedule-workflow
task-request.
definition
string
Definition of predefined task or
custom-defined task.
Example:aidbox.archive/create-archive
task-request.
label
string
Human- or machine-readable description of task instance. Should be unique in the context of single workflow.
Example: Import Patient resources
task-request.
params
object
The input parameters described in the task or workflow definition.
Action types
Action type
Description
awf.workflow.action/schedule-task
Used to schedule the execution of a new task from current workflow. Requires task request object in the response.
awf.workflow.action/schedule-workflow
Used to schedule the execution of a new workflow from current workflow. Requires workflow request object in the response.
awf.workflow.action/do-nothing
Used to wait until the next event occurs when multiple tasks have been started in parallel, but when some tasks are completed, other tasks are still in progress.
awf.workflow.action/complete-workflow
Used when all tasks have been completed to change the status of the workflow instance to done with outcome succeeded.
awf.workflow.action/fail
Used when some tasks have failed to change the status of the workflow instance to done with outcome failed with handled error.
awf.workflow.action/unknown-error
Used when some tasks have failed to change the status of the workflow instance to done with outcome failed with unknown error.
Import resource task
Loading resource in specified format (.gzip or .ndjson) from specified url and persists it into Aidbox database.
Params
Parameter
Type
Required
Description
id
string
Identifier of the import.
If you don't provide this, the id will be auto-generated. You can check it on Content-Location header in the response
contentEncoding
string
Supports gzip or plain (non-gzipped .ndjson files)
input
object
Resource to import
input.url
string
URL from which load resources
input.resourceType
string
Resource type to be loaded
type
string
Type of persisted resource
Possible values: fhir, aidbox
Example
POST /rpccontent-type:text/yamlaccept:text/yamlmethod:awf.task/create-and-executeparams:definition:aidbox.bulk/import-resource-taskparams:type:aidboxinput:url:https://storage.googleapis.com/aidbox-public/synthea/100/Organization.ndjson.gzresourceType:Organization
Deletes AidboxTask, AidboxTaskLog and AidboxWorkflow resources that are in done state according to specified rules.
When the workflow is matched by the rule, all activities requested by that workflow as AidboxTask and AidboxWorkflow would also be deleted. If task is matched by the rule, all it's AidboxTaskLog resources would also be deleted.
When includeDefinitions is specified, only activities with listed definitions will be deleted.
When excludeDefinitions is specified, all activities are deleted except for activities with the listed definitions.
If both includeDefinitions and excludeDefinitions are not specified, deletes all resources that match retentionPolicy.
If multiple rules are listed, all rules are applied.
Can be used with the Scheduler service to automatically clean up old tasks and workflows.
Params
Parameter
Type
Required
Description
rules
object[]
Array of cleanup rules.
At least 1 rule is required.
rules[].retentionPolicy
object
Policy that manages the length of time resources are kept. Resources that are not within this time period will be deleted.
Example: {"unit": "hour", "value": 1} - means that any resource updated more than 1 hour ago will be deleted.
rules[].retentionPolicy.unit
string
Time units.
Possible values: minute, hour, day, week, month, year
rules[].retentionPolicy.value
integer
Number of time units.
rules[].includeDefinitions
string[]
List of task/workflow definitions that would be affected by this rule.
Example: ["aidbox.bulk/import-resource-task"]
Exclusive with rules.excludeDefinitions
rules[].excludeDefinitions
string[]
List of task/workflow definitions that would be ignored by this rule. In this case, the rule would be applied to all AidboxTask, AidboxTaskLog and AidboxWorkflow resources except the listed definitions.
Example: ["aidbox.bulk/import-resource-task"]
Exclusive with rules.includeDefinitions
POST /rpccontent-type:text/yamlaccept:text/yamlmethod:awf.task/create-and-executeparams:definition:awf.task/clean-up-activitiesparams:rules: - retentionPolicy:unit:minutevalue:1includeDefinitions: - aidbox.bulk/import-resources-workflow
Executes the given SQL query. If given is array, executes given as prepared statement.
If the query result is greater than 1000 rows, an error is returned.
Params
Parameter
Type
Required
Description
sql
string
or
string[]
SQL query or prepared statement.
POST /rpccontent-type:text/yamlaccept:text/yamlmethod:awf.task/create-and-executeparams:definition:aidbox.task/run-sqlparams:sql: - SELECT id FROM Patient WHERE id=? LIMIT 1; - 'pt-1'
result:resource:params:sql: - SELECT id FROM Patient WHERE id=? LIMIT 1; - pt-1status:readydefinition:aidbox.task/run-sqlid:>- ee56dfe3-5853-4da1-bbb2-2405b1d8b0a9resourceType:AidboxTaskmeta:lastUpdated:'2023-10-31T08:02:05.399463Z'createdAt:'2023-10-31T08:02:05.399463Z'versionId:'73560'
definition:aidbox.task/run-sqlmeta:lastUpdated:'2023-10-31T08:02:05.449732Z'createdAt:'2023-10-31T08:02:05.399463Z'versionId:'73566'params:sql: - SELECT id FROM Patient WHERE id=? LIMIT 1; - pt-1retryCount:1outcome:succeededresourceType:AidboxTaskstatus:doneresult: - id:pt-1execId:86cb0940-75a1-4d2f-89ca-0a5fe4cbf497id:>- ee56dfe3-5853-4da1-bbb2-2405b1d8b0a9
aidbox.task/run-rpc
Executes the given Aidbox RPC-method with params.
Params
Parameter
Type
Required
Description
method
string
Definition of the RPC-method.
params
object
Params of the RPC-method.
POST /rpccontent-type:text/yamlaccept:text/yamlmethod:awf.task/create-and-executeparams:definition:aidbox.task/run-rpcparams:method:aidbox.pg/vacuum-tableparams:table:patientanalyze:true
Executes validation on given table names. Creates a task for every table.
Note: for every broken target resource creates a BatchValidationError resource.
POST /rpccontent-type:text/yamlaccept:text/yamlmethod:awf.workflow/create-and-executeparams:definition:aidbox.validation/resource-types-batch-validation-workflowparams:tables: ['patient','observation']