Skip to content
Closed
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
44 changes: 42 additions & 2 deletions openapi/openapiv2.json

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions openapi/openapiv3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10157,6 +10157,7 @@ components:
- EVENT_TYPE_NEXUS_OPERATION_CANCEL_REQUEST_FAILED
- EVENT_TYPE_WORKFLOW_EXECUTION_PAUSED
- EVENT_TYPE_WORKFLOW_EXECUTION_UNPAUSED
- EVENT_TYPE_WORKFLOW_EXECUTION_TIME_SKIPPED
type: string
format: enum
version:
Expand Down Expand Up @@ -10315,6 +10316,8 @@ components:
$ref: '#/components/schemas/WorkflowExecutionPausedEventAttributes'
workflowExecutionUnpausedEventAttributes:
$ref: '#/components/schemas/WorkflowExecutionUnpausedEventAttributes'
workflowExecutionTimeSkippedEventAttributes:
$ref: '#/components/schemas/WorkflowExecutionTimeSkippedEventAttributes'
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 @@ -11067,6 +11070,8 @@ components:
Calls are retried internally by the server.
(-- api-linter: core::0140::prepositions=disabled
aip.dev/not-precedent: "to" is used to indicate interval. --)
(-- api-linter: core::0142::time-field-names=disabled
aip.dev/not-precedent: "timeout" is an acceptable suffix for duration fields in this API. --)
nexusHeader:
type: object
additionalProperties:
Expand Down Expand Up @@ -12258,6 +12263,7 @@ components:
- EVENT_TYPE_NEXUS_OPERATION_CANCEL_REQUEST_FAILED
- EVENT_TYPE_WORKFLOW_EXECUTION_PAUSED
- EVENT_TYPE_WORKFLOW_EXECUTION_UNPAUSED
- EVENT_TYPE_WORKFLOW_EXECUTION_TIME_SKIPPED
type: string
description: The event type of the history event generated by the request.
format: enum
Expand Down Expand Up @@ -13571,6 +13577,10 @@ components:
allOf:
- $ref: '#/components/schemas/Priority'
description: Priority metadata
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: Time skipping configuration. If set, enables time skipping for this workflow from the start.
SignalWithStartWorkflowExecutionResponse:
type: object
properties:
Expand Down Expand Up @@ -14033,6 +14043,10 @@ components:
allOf:
- $ref: '#/components/schemas/WorkerDeploymentOptions'
description: Deployment Options of the worker who will process the eager task. Passed when `request_eager_execution=true`.
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: Time skipping configuration. If set, enables time skipping for this workflow from the start.
StartWorkflowExecutionResponse:
type: object
properties:
Expand Down Expand Up @@ -14436,6 +14450,15 @@ components:
TerminatedFailureInfo:
type: object
properties: {}
TimeSkippingConfig:
type: object
properties:
enabled:
type: boolean
description: |-
If set, enables automatic time skipping for this workflow execution.
Can be disabled by setting this field to false.
description: "Configuration for automatic time skipping on a workflow execution.\n Once enabled, time automatically advances when there is no in-flight \n activity, child workflow, or Nexus operation.\n Fine-grained control for time skipping is to be added later."
TimeoutFailureInfo:
type: object
properties:
Expand Down Expand Up @@ -15859,6 +15882,7 @@ components:
- EVENT_TYPE_NEXUS_OPERATION_CANCEL_REQUEST_FAILED
- EVENT_TYPE_WORKFLOW_EXECUTION_PAUSED
- EVENT_TYPE_WORKFLOW_EXECUTION_UNPAUSED
- EVENT_TYPE_WORKFLOW_EXECUTION_TIME_SKIPPED
type: string
format: enum
description: EventReference is a direct reference to a history event through the event ID.
Expand Down Expand Up @@ -15929,6 +15953,7 @@ components:
- EVENT_TYPE_NEXUS_OPERATION_CANCEL_REQUEST_FAILED
- EVENT_TYPE_WORKFLOW_EXECUTION_PAUSED
- EVENT_TYPE_WORKFLOW_EXECUTION_UNPAUSED
- EVENT_TYPE_WORKFLOW_EXECUTION_TIME_SKIPPED
type: string
format: enum
description: RequestIdReference is a indirect reference to a history event through the request ID.
Expand Down Expand Up @@ -16278,6 +16303,10 @@ components:
allOf:
- $ref: '#/components/schemas/Priority'
description: If set, overrides the workflow's priority sent by the SDK.
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: Time skipping opt-in configuration for this workflow execution.
WorkflowExecutionOptionsUpdatedEventAttributes:
type: object
properties:
Expand Down Expand Up @@ -16309,6 +16338,10 @@ components:
description: |-
Priority override upserted in this event. Represents the full priority; not just partial fields.
Ignored if nil.
timeSkippingConfig:
allOf:
- $ref: '#/components/schemas/TimeSkippingConfig'
description: Time skipping configuration upserted in this event.
WorkflowExecutionPauseInfo:
type: object
properties:
Expand Down Expand Up @@ -16614,6 +16647,18 @@ components:
identity:
type: string
description: id of the client who requested termination
WorkflowExecutionTimeSkippedEventAttributes:
type: object
properties:
toTime:
type: string
description: |-
(-- api-linter: core::0140::prepositions=disabled
aip.dev/not-precedent: "to" is used to indicate target time point. --)
format: date-time
description: |-
Attributes for an event marking that a duration was skipped for a workflow execution,
either via explicit api call or automatic time skipping.
WorkflowExecutionTimedOutEventAttributes:
type: object
properties:
Expand Down
2 changes: 2 additions & 0 deletions temporal/api/enums/v1/event_type.proto
Original file line number Diff line number Diff line change
Expand Up @@ -173,4 +173,6 @@ 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;
// An event that indicates that a time point was skipped for this workflow execution.
EVENT_TYPE_WORKFLOW_EXECUTION_TIME_SKIPPED = 60;
}
13 changes: 13 additions & 0 deletions temporal/api/history/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -873,6 +873,8 @@ message WorkflowExecutionOptionsUpdatedEventAttributes {
// Priority override upserted in this event. Represents the full priority; not just partial fields.
// Ignored if nil.
temporal.api.common.v1.Priority priority = 6;
// Time skipping configuration upserted in this event.
temporal.api.workflow.v1.TimeSkippingConfig time_skipping_config = 7;
}

// Not used anywhere. Use case is replaced by WorkflowExecutionOptionsUpdatedEventAttributes
Expand Down Expand Up @@ -965,6 +967,14 @@ message WorkflowExecutionUnpausedEventAttributes {
string request_id = 3;
}

// Attributes for an event marking that a duration was skipped for a workflow execution,
// either via explicit api call or automatic time skipping.
message WorkflowExecutionTimeSkippedEventAttributes {
// (-- api-linter: core::0140::prepositions=disabled
// aip.dev/not-precedent: "to" is used to indicate target time point. --)
google.protobuf.Timestamp to_time = 1;
}

// Event marking that an operation was scheduled by a workflow via the ScheduleNexusOperation command.
message NexusOperationScheduledEventAttributes {
// Endpoint name, must exist in the endpoint registry.
Expand All @@ -982,6 +992,8 @@ message NexusOperationScheduledEventAttributes {
// Calls are retried internally by the server.
// (-- api-linter: core::0140::prepositions=disabled
// aip.dev/not-precedent: "to" is used to indicate interval. --)
// (-- api-linter: core::0142::time-field-names=disabled
// aip.dev/not-precedent: "timeout" is an acceptable suffix for duration fields in this API. --)
google.protobuf.Duration schedule_to_close_timeout = 5;
// Header to attach to the Nexus request. Note these headers are not the same as Temporal headers on internal
// activities and child workflows, these are transmitted to Nexus operations that may be external and are not
Expand Down Expand Up @@ -1199,6 +1211,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;
WorkflowExecutionTimeSkippedEventAttributes workflow_execution_time_skipped_event_attributes = 65;
}
}

Expand Down
14 changes: 14 additions & 0 deletions temporal/api/workflow/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -566,6 +566,20 @@ message WorkflowExecutionOptions {

// If set, overrides the workflow's priority sent by the SDK.
temporal.api.common.v1.Priority priority = 2;

// Time skipping opt-in configuration for this workflow execution.
TimeSkippingConfig time_skipping_config = 3;
}

// Configuration for automatic time skipping on a workflow execution.
// Once enabled, time automatically advances when there is no in-flight
// activity, child workflow, or Nexus operation.
// Fine-grained control for time skipping is to be added later.
message TimeSkippingConfig {

// If set, enables automatic time skipping for this workflow execution.
// Can be disabled by setting this field to false.
bool enabled = 1;
}

// Used to override the versioning behavior (and pinned deployment version, if applicable) of a
Expand Down
4 changes: 4 additions & 0 deletions temporal/api/workflowservice/v1/request_response.proto
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,8 @@ message StartWorkflowExecutionRequest {
temporal.api.common.v1.Priority priority = 27;
// Deployment Options of the worker who will process the eager task. Passed when `request_eager_execution=true`.
temporal.api.deployment.v1.WorkerDeploymentOptions eager_worker_deployment_options = 28;
// Time skipping configuration. If set, enables time skipping for this workflow from the start.
temporal.api.workflow.v1.TimeSkippingConfig time_skipping_config = 29;
}

message StartWorkflowExecutionResponse {
Expand Down Expand Up @@ -836,6 +838,8 @@ message SignalWithStartWorkflowExecutionRequest {
temporal.api.workflow.v1.VersioningOverride versioning_override = 25;
// Priority metadata
temporal.api.common.v1.Priority priority = 26;
// Time skipping configuration. If set, enables time skipping for this workflow from the start.
temporal.api.workflow.v1.TimeSkippingConfig time_skipping_config = 27;
}

message SignalWithStartWorkflowExecutionResponse {
Expand Down
Loading