Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 31 additions & 24 deletions openapi/openapiv2.json

Large diffs are not rendered by default.

74 changes: 57 additions & 17 deletions openapi/openapiv3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4559,6 +4559,10 @@ paths:
get:
tags:
- WorkflowService
description: |-
PollWorkflowExecutionTimeSkipping waits for a fast-forward outcome for a workflow execution.

Experimental. Might change in the future.
operationId: PollWorkflowExecutionTimeSkipping
parameters:
- name: namespace
Expand Down Expand Up @@ -9582,6 +9586,10 @@ paths:
get:
tags:
- WorkflowService
description: |-
PollWorkflowExecutionTimeSkipping waits for a fast-forward outcome for a workflow execution.

Experimental. Might change in the future.
operationId: PollWorkflowExecutionTimeSkipping
parameters:
- name: namespace
Expand Down Expand Up @@ -12602,6 +12610,9 @@ components:

If this duration exceeds the remaining execution timeout, time will not pass beyond the end
of the execution, and the fast-forward won't have a chance to complete.
description: |-
Controls a time-skipping fast-forward for an execution.
Experimental. Might change in the future.
FetchWorkerConfigRequest:
type: object
properties:
Expand Down Expand Up @@ -13110,7 +13121,9 @@ components:
workflowExecutionUnpausedEventAttributes:
$ref: '#/components/schemas/WorkflowExecutionUnpausedEventAttributes'
workflowExecutionTimeSkippingTransitionedEventAttributes:
$ref: '#/components/schemas/WorkflowExecutionTimeSkippingTransitionedEventAttributes'
allOf:
- $ref: '#/components/schemas/WorkflowExecutionTimeSkippingTransitionedEventAttributes'
description: Experimental.
description: |-
History events are the method by which Temporal SDKs advance (or recreate) workflow state.
See the `EventType` enum for more info about what each event is for.
Expand Down Expand Up @@ -14921,6 +14934,9 @@ components:
allOf:
- $ref: '#/components/schemas/TimeSkippingFastForwardInfo'
description: The execution's current fast-forward, if any.
description: |-
Result of polling a workflow execution's time-skipping fast-forward.
Experimental. Might change in the future.
PollWorkflowTaskQueueResponse:
type: object
properties:
Expand Down Expand Up @@ -16486,7 +16502,8 @@ components:
allOf:
- $ref: '#/components/schemas/TimeSkippingInfo'
description: |-
Information about time skipping for this schedule.
Experimental.
Information about time skipping for this schedule.
If the schedule has never enabled time skipping, this will be unset.
ScheduleListEntry:
type: object
Expand Down Expand Up @@ -16563,7 +16580,8 @@ components:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: |-
If set, applies the specified time-skipping configuration to this schedule,
Experimental.
If set, applies the specified time-skipping configuration to this schedule,
replacing any existing time-skipping configuration.
SchedulePolicies:
type: object
Expand Down Expand Up @@ -17173,7 +17191,9 @@ components:
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: Time-skipping configuration. If not set, time skipping is disabled.
description: |-
Experimental.
Time-skipping configuration. If not set, time skipping is disabled.
SignalWithStartWorkflowExecutionResponse:
type: object
properties:
Expand Down Expand Up @@ -17575,12 +17595,15 @@ components:
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: The propagated time-skipping configuration for the child workflow.
description: |-
Experimental.
The propagated time-skipping configuration for the child workflow.
timeSkippingStatePropagation:
allOf:
- $ref: '#/components/schemas/TimeSkippingStatePropagation'
description: |-
The time-skipping state propagated from the parent workflow. This can be nil if no time skipping
Experimental.
The time-skipping state propagated from the parent workflow. This can be nil if no time skipping
has occurred or there is no previous run.
versioningOverride:
allOf:
Expand Down Expand Up @@ -17889,7 +17912,9 @@ components:
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: Time-skipping configuration. If not set, time skipping is disabled.
description: |-
Experimental.
Time-skipping configuration. If not set, time skipping is disabled.
propagatedNexusSerializationContext:
allOf:
- $ref: '#/components/schemas/PropagatedSerializationContext'
Expand All @@ -17898,7 +17923,8 @@ components:
allOf:
- $ref: '#/components/schemas/TimeSkippingStatePropagation'
description: |-
Time-skipping state propagated by the execution that started this workflow.
Experimental.
Time-skipping state propagated by the execution that started this workflow.
This field is intended for use by the Temporal server, for example when a schedule
starts a workflow, and is not intended to be set by external clients.
StartWorkflowExecutionResponse:
Expand Down Expand Up @@ -18386,6 +18412,7 @@ components:
but a parent's fast_forward won't affect its child's execution. A flag is provided to disable propagation of the
"enabled" flag to child workflows; regardless of that flag, a child workflow inherits the virtual time from the
parent execution as its start time.
Experimental. Might change in the future.
TimeSkippingFastForwardInfo:
type: object
properties:
Expand All @@ -18403,7 +18430,9 @@ components:
hasCompleted:
type: boolean
description: True once `target_time` has been reached.
description: TimeSkippingFastForwardInfo describes the current time-skipping fast-forward on an execution.
description: |-
TimeSkippingFastForwardInfo describes the current time-skipping fast-forward on an execution.
Experimental. Might change in the future.
TimeSkippingInfo:
type: object
properties:
Expand Down Expand Up @@ -18431,7 +18460,9 @@ components:
The number of skips accumulated in the current session, bounded by `max_session_skip_count`.
A new session begins — and this resets to 0 — each time `max_session_skip_count` is updated.
format: int32
description: Describes the current time-skipping state of a workflow execution.
description: |-
Describes the current time-skipping state of a workflow execution.
Experimental. Might change in the future.
TimeSkippingStatePropagation:
type: object
properties:
Expand All @@ -18452,6 +18483,7 @@ components:
description: |-
The time-skipping state that needs to be propagated from one execution to another, or through a chain of runs
within the same execution.
Experimental. Might change in the future.
TimeoutFailureInfo:
type: object
properties:
Expand Down Expand Up @@ -19119,7 +19151,8 @@ components:
updateTime:
type: string
description: |-
The Workflow Execution time when the options were updated. When time skipping is
Experimental.
The Workflow Execution time when the options were updated. When time skipping is
enabled, this is the workflow's virtual time rather than wall-clock time.

This timestamp cannot be used for time-skipping fast-forward verification,
Expand Down Expand Up @@ -20392,7 +20425,8 @@ components:
allOf:
- $ref: '#/components/schemas/TimeSkippingInfo'
description: |-
Information about time skipping of the workflow execution.
Experimental.
Information about time skipping of the workflow execution.
If the execution has never enabled time skipping, it will be nil.
propagatedNexusSerializationContext:
allOf:
Expand Down Expand Up @@ -20566,7 +20600,7 @@ components:
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: "The time-skipping configuration for this workflow execution.\n When `fast_forward` is set, time will be fast-forwarded to a future point relative\n to the current workflow timestamp. Each call takes effect, even if\n `fast_forward` is set to the same duration, since the target time is recalculated\n from the current timestamp on every call.\n\n This field must be updated as a whole; updating individual sub-fields is not supported.\n When setting the update mask in `UpdateWorkflowExecutionOptionsRequest`, \n `BatchOperationUpdateWorkflowExecutionOptions`, etc., use a mask that covers the entire field."
description: "Experimental.\n The time-skipping configuration for this workflow execution.\n When `fast_forward` is set, time will be fast-forwarded to a future point relative\n to the current workflow timestamp. Each call takes effect, even if\n `fast_forward` is set to the same duration, since the target time is recalculated\n from the current timestamp on every call.\n\n This field must be updated as a whole; updating individual sub-fields is not supported.\n When setting the update mask in `UpdateWorkflowExecutionOptionsRequest`, \n `BatchOperationUpdateWorkflowExecutionOptions`, etc., use a mask that covers the entire field."
WorkflowExecutionOptionsUpdatedEventAttributes:
type: object
properties:
Expand Down Expand Up @@ -20601,11 +20635,14 @@ components:
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: TimeSkippingConfig override upserted in this event. Represents the full config.
description: |-
Experimental.
TimeSkippingConfig override upserted in this event. Represents the full config.
timeSkippingConfigUpdated:
type: boolean
description: |-
Indicates the time skipping config was updated by the recent call to update
Experimental.
Indicates the time skipping config was updated by the recent call to update
workflow execution options.
workflowUpdateOptions:
type: array
Expand Down Expand Up @@ -20930,7 +20967,8 @@ components:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: |-
Initial time-skipping configuration for this workflow execution, recorded at start time.
Experimental.
Initial time-skipping configuration for this workflow execution, recorded at start time.
This may have been set explicitly via the start workflow request, or propagated from a
parent/previous execution.

Expand All @@ -20940,7 +20978,8 @@ components:
allOf:
- $ref: '#/components/schemas/TimeSkippingStatePropagation'
description: |-
The time-skipping state propagated from a previous run of this workflow. This can be nil
Experimental.
The time-skipping state propagated from a previous run of this workflow. This can be nil
if no time skipping has occurred or there is no previous run.
propagatedNexusSerializationContext:
allOf:
Expand Down Expand Up @@ -20979,6 +21018,7 @@ components:
Attributes for an event indicating that time skipping state changed for a workflow execution:
either time was advanced, or time skipping was stopped automatically due to the fast_forward completing.
The worker_may_ignore field in HistoryEvent should always be set true for this event.
Experimental. Might change in the future.
WorkflowExecutionTimedOutEventAttributes:
type: object
properties:
Expand Down
6 changes: 6 additions & 0 deletions temporal/api/common/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -480,6 +480,7 @@ message OnConflictOptions {
// but a parent's fast_forward won't affect its child's execution. A flag is provided to disable propagation of the
// "enabled" flag to child workflows; regardless of that flag, a child workflow inherits the virtual time from the
// parent execution as its start time.
// Experimental. Might change in the future.
message TimeSkippingConfig {

// Enables or disables time skipping for this workflow execution.
Expand Down Expand Up @@ -507,6 +508,8 @@ message TimeSkippingConfig {
int32 max_session_skip_count = 4;
}

// Controls a time-skipping fast-forward for an execution.
// Experimental. Might change in the future.
message FastForwardConfig {
// A client-supplied ID, required field, set alongside `duration`. It is used to poll for
// fast-forward completion via PollWorkflowExecutionTimeSkipping.
Expand All @@ -527,6 +530,7 @@ message FastForwardConfig {

// The time-skipping state that needs to be propagated from one execution to another, or through a chain of runs
// within the same execution.
// Experimental. Might change in the future.
message TimeSkippingStatePropagation {

// The time skipped by the previous run. It is propagated both to executions started by the
Expand All @@ -542,6 +546,7 @@ message TimeSkippingStatePropagation {


// Describes the current time-skipping state of a workflow execution.
// Experimental. Might change in the future.
message TimeSkippingInfo {
// Current virtual time of the execution. If the execution hasn't skipped
// any time yet, it will be the same as wall clock time.
Expand All @@ -563,6 +568,7 @@ message TimeSkippingInfo {


// TimeSkippingFastForwardInfo describes the current time-skipping fast-forward on an execution.
// Experimental. Might change in the future.
message TimeSkippingFastForwardInfo {
// The client-supplied `fast_forward` duration.
google.protobuf.Duration fast_forward_duration = 1;
Expand Down
1 change: 1 addition & 0 deletions temporal/api/enums/v1/event_type.proto
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ enum EventType {
EVENT_TYPE_WORKFLOW_EXECUTION_PAUSED = 58;
// An event that indicates that the previously paused workflow execution has been unpaused.
EVENT_TYPE_WORKFLOW_EXECUTION_UNPAUSED = 59;
// Experimental.
// An event that indicates time skipping advanced time or was disabled automatically after a bound was reached.
EVENT_TYPE_WORKFLOW_EXECUTION_TIME_SKIPPING_TRANSITIONED = 60;
}
1 change: 1 addition & 0 deletions temporal/api/enums/v1/time_skipping.proto
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ option csharp_namespace = "Temporalio.Api.Enums.V1";
// FAST_FORWARD_POLLING_RESULT_POLL_TIMEOUT and FAST_FORWARD_POLLING_RESULT_FAST_FORWARD_COMPLETED
// are the normal poll outcomes; FAST_FORWARD_POLLING_RESULT_FAST_FORWARD_FAILED means the
// fast-forward can no longer complete.
// Experimental. Might change in the future.
enum FastForwardPollingResult {
// Never returned; guards against an unset result.
FAST_FORWARD_POLLING_RESULT_UNSPECIFIED = 0;
Expand Down
8 changes: 8 additions & 0 deletions temporal/api/history/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ message WorkflowExecutionStartedEventAttributes {
// Should not be read or interpreted by SDKs.
DeclinedTargetVersionUpgrade declined_target_version_upgrade = 40;

// Experimental.
// Initial time-skipping configuration for this workflow execution, recorded at start time.
// This may have been set explicitly via the start workflow request, or propagated from a
// parent/previous execution.
Expand All @@ -210,6 +211,7 @@ message WorkflowExecutionStartedEventAttributes {
reserved 42;
reserved "initial_skipped_duration";

// Experimental.
// The time-skipping state propagated from a previous run of this workflow. This can be nil
// if no time skipping has occurred or there is no previous run.
temporal.api.common.v1.TimeSkippingStatePropagation time_skipping_state_propagation = 43;
Expand Down Expand Up @@ -786,12 +788,14 @@ message StartChildWorkflowExecutionInitiatedEventAttributes {
// Priority metadata
temporal.api.common.v1.Priority priority = 20;

// Experimental.
// The propagated time-skipping configuration for the child workflow.
temporal.api.common.v1.TimeSkippingConfig time_skipping_config = 21;

reserved 22;
reserved "initial_skipped_duration";

// Experimental.
// The time-skipping state propagated from the parent workflow. This can be nil if no time skipping
// has occurred or there is no previous run.
temporal.api.common.v1.TimeSkippingStatePropagation time_skipping_state_propagation = 23;
Expand Down Expand Up @@ -925,9 +929,11 @@ message WorkflowExecutionOptionsUpdatedEventAttributes {
// Ignored if nil.
temporal.api.common.v1.Priority priority = 6;

// Experimental.
// TimeSkippingConfig override upserted in this event. Represents the full config.
temporal.api.common.v1.TimeSkippingConfig time_skipping_config = 7;

// Experimental.
// Indicates the time skipping config was updated by the recent call to update
// workflow execution options.
bool time_skipping_config_updated = 9;
Expand Down Expand Up @@ -1029,6 +1035,7 @@ message WorkflowExecutionUnpausedEventAttributes {
// Attributes for an event indicating that time skipping state changed for a workflow execution:
// either time was advanced, or time skipping was stopped automatically due to the fast_forward completing.
// The worker_may_ignore field in HistoryEvent should always be set true for this event.
// Experimental. Might change in the future.
message WorkflowExecutionTimeSkippingTransitionedEventAttributes {
// The virtual time point that time skipping advanced to.
google.protobuf.Timestamp target_time = 1;
Expand Down Expand Up @@ -1280,6 +1287,7 @@ message HistoryEvent {
NexusOperationCancelRequestFailedEventAttributes nexus_operation_cancel_request_failed_event_attributes = 62;
WorkflowExecutionPausedEventAttributes workflow_execution_paused_event_attributes = 63;
WorkflowExecutionUnpausedEventAttributes workflow_execution_unpaused_event_attributes = 64;
// Experimental.
WorkflowExecutionTimeSkippingTransitionedEventAttributes workflow_execution_time_skipping_transitioned_event_attributes = 65;
}
}
Expand Down
2 changes: 2 additions & 0 deletions temporal/api/schedule/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ message SchedulePatch {
string pause = 3;
string unpause = 4;

// Experimental.
// If set, applies the specified time-skipping configuration to this schedule,
// replacing any existing time-skipping configuration.
temporal.api.common.v1.TimeSkippingConfig time_skipping_config = 5;
Expand Down Expand Up @@ -357,6 +358,7 @@ message ScheduleInfo {
// Size of the schedule's internal state (including payloads) in bytes.
int64 state_size_bytes = 12;

// Experimental.
// Information about time skipping for this schedule.
// If the schedule has never enabled time skipping, this will be unset.
temporal.api.common.v1.TimeSkippingInfo time_skipping_info = 13;
Expand Down
2 changes: 2 additions & 0 deletions temporal/api/workflow/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ message WorkflowExecutionExtendedInfo {
// Information about the workflow execution pause operation.
WorkflowExecutionPauseInfo pause_info = 8;

// Experimental.
// Information about time skipping of the workflow execution.
// If the execution has never enabled time skipping, it will be nil.
temporal.api.common.v1.TimeSkippingInfo time_skipping_info = 9;
Expand Down Expand Up @@ -597,6 +598,7 @@ message WorkflowExecutionOptions {
// If set, overrides the workflow's priority sent by the SDK.
temporal.api.common.v1.Priority priority = 2;

// Experimental.
// The time-skipping configuration for this workflow execution.
// When `fast_forward` is set, time will be fast-forwarded to a future point relative
// to the current workflow timestamp. Each call takes effect, even if
Expand Down
Loading
Loading