Skip to main content

Interface: IWorkflowExecutionVersioningInfo

workflow.v1.IWorkflowExecutionVersioningInfo

Properties of a WorkflowExecutionVersioningInfo.

Implemented by

Properties

behavior

Optional behavior: null | VersioningBehavior

Versioning behavior determines how the server should treat this execution when workers are upgraded. When present it means this workflow execution is versioned; UNSPECIFIED means unversioned. See the comments in VersioningBehavior enum for more info about different behaviors. This field is first set after an execution completes its first workflow task on a versioned worker, and set again on completion of every subsequent workflow task. For child workflows of Pinned parents, this will be set to Pinned (along with version) when the the child starts so that child's first workflow task goes to the same Version as the parent. After the first workflow task, it depends on the child workflow itself if it wants to stay pinned or become unpinned (according to Versioning Behavior set in the worker). Note that behavior is overridden by versioning_override if the latter is present.


deployment

Optional deployment: null | IDeployment

The worker deployment that completed the last workflow task of this workflow execution. Must be present if behavior is set. Absent value means no workflow task is completed, or the last workflow task was completed by an unversioned worker. Unversioned workers may still send a deployment value which will be stored here, so the right way to check if an execution is versioned if an execution is versioned or not is via the behavior field. Note that deployment is overridden by versioning_override if the latter is present. Deprecated. Use version.


deploymentTransition

Optional deploymentTransition: null | IDeploymentTransition

When present, indicates the workflow is transitioning to a different deployment. Can indicate one of the following transitions: unversioned -> versioned, versioned -> versioned on a different deployment, or versioned -> unversioned. Not applicable to workflows with PINNED behavior. When a workflow with AUTO_UPGRADE behavior creates a new workflow task, it will automatically start a transition to the task queue's current deployment if the task queue's current deployment is different from the workflow's deployment. If the AUTO_UPGRADE workflow is stuck due to backlogged activity or workflow tasks, those tasks will be redirected to the task queue's current deployment. As soon as a poller from that deployment is available to receive the task, the workflow will automatically start a transition to that deployment and continue execution there. A deployment transition can only exist while there is a pending or started workflow task. Once the pending workflow task completes on the transition's target deployment, the transition completes and the workflow's deployment and behavior fields are updated per the worker's task completion response. Pending activities will not start new attempts during a transition. Once the transition is completed, pending activities will start their next attempt on the new deployment. Deprecated. Use version_transition.


version

Optional version: null | string

The Worker Deployment Version that completed the last workflow task of this workflow execution, in the form "<deployment_name>.<build_id>". Must be present if and only if behavior is set. An absent value means no workflow task is completed, or the workflow is unversioned. For child workflows of Pinned parents, this will be set to parent's Pinned Version when the the child starts so that child's first workflow task goes to the same Version as the parent. Note that if versioning_override.behavior is PINNED then versioning_override.pinned_version will override this value.


versionTransition

Optional versionTransition: null | IDeploymentVersionTransition

When present, indicates the workflow is transitioning to a different deployment version (which may belong to the same deployment name or another). Can indicate one of the following transitions: unversioned -> versioned, versioned -> versioned on a different deployment version, or versioned -> unversioned. Not applicable to workflows with PINNED behavior. When a workflow with AUTO_UPGRADE behavior creates a new workflow task, it will automatically start a transition to the task queue's current version if the task queue's current version is different from the workflow's current deployment version. If the AUTO_UPGRADE workflow is stuck due to backlogged activity or workflow tasks, those tasks will be redirected to the task queue's current version. As soon as a poller from that deployment version is available to receive the task, the workflow will automatically start a transition to that version and continue execution there. A version transition can only exist while there is a pending or started workflow task. Once the pending workflow task completes on the transition's target version, the transition completes and the workflow's behavior, and version fields are updated per the worker's task completion response. Pending activities will not start new attempts during a transition. Once the transition is completed, pending activities will start their next attempt on the new version.


versioningOverride

Optional versioningOverride: null | IVersioningOverride

Present if user has set an execution-specific versioning override. This override takes precedence over SDK-sent behavior (and version when override is PINNED). An override can be set when starting a new execution, as well as afterwards by calling the UpdateWorkflowExecutionOptions API. Pinned overrides are automatically inherited by child workflows.