Appearance
Task Owner
The owner and owner type fields represents the user or entity who "owns" a task at a given point in the workflow. AireFlow itself does not rely on either property for anything, but other systems such as AireFrame can use it.
owner and owner type are optional properties.
How it’s set
The owner can be assigned or updated through several mechanisms:
Workflow definition
- An
ownercan be configured for each task in the workflow builder. - Supports dynamic expressions (e.g. XPath or Liquid), similar to other configurable fields like
nameorassignee.
- An
Event propagation
- The
owneris automatically included in any events emitted by a task. - When a task is triggered by an event from another task:
- The
owneris set from the event payload by default - If the task definition specifies an XPath/Liquid expression for
owner, that expression takes precedence over the owner from the event
- The
- The
API updates
- The
ownercan be modified at runtime via the PATCH API or via a Mutation.
- The
From AireFrame
- When a task is updated via AireFrame, the
ownerandowner typewill automatically be set to reflect the user who made the update.
- When a task is updated via AireFrame, the
Owner Type
When using the owner to refer to an AireFrame user, the owner type field should be used to keep track of the type of AireFrame user so the user can be rendered correctly. AireFrame supports the following owner types:
- User - Looks up the ID against AireAuth and shows the user’s display name
- Subject - Looks up the ID against AireFrame subjects and shows the primary field value
- Subject Proxy - Looks up the ID against AireAuth and shows the user’s display name
- External - Shows as
[Id] (External) - Client Credentials - Shows as
[Id] (System) - System - Shows as
[Id] - Unknown - Shows as
[Id]
Behavior and considerations
- The
ownerandowner typefields are optional and mutable. - Ownership can be dynamically resolved at runtime using expressions.
- Propagation through events ensures continuity of ownership across workflow steps.
- Explicit configuration (XPath/Liquid) overrides inherited values from task events.
- API updates can override previously set values at any point in the task lifecycle.
Example
- Task A is defined with
owner = User1 - Task A emits an event with
owner = User1 - Task B is triggered by the event:
- If no expression is defined →
owner = User1(inherited) - If
owneris defined as an expression → evaluated result is used instead
- If no expression is defined →
- Task B is later updated by User2 in AireFrame →
owner = User2