Skip to content
Draft
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
4 changes: 4 additions & 0 deletions openapi/openapiv2.json
Original file line number Diff line number Diff line change
Expand Up @@ -16639,6 +16639,10 @@
"workflowUpdateCallbacks": {
"type": "boolean",
"title": "True if the namespace supports attaching callbacks on workflow updates"
},
"workflowTaskCompletionPagination": {
"type": "boolean",
"description": "True if the namespace supports paginated workflow task completion, i.e.\n`RespondWorkflowTaskCompleted` requests split across multiple pages. SDKs must check this\ncapability before sending a request with `intermediate_page` set to true."
}
},
"description": "Namespace capability details. Should contain what features are enabled in a namespace."
Expand Down
6 changes: 6 additions & 0 deletions openapi/openapiv3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13057,6 +13057,12 @@ components:
workflowUpdateCallbacks:
type: boolean
description: True if the namespace supports attaching callbacks on workflow updates
workflowTaskCompletionPagination:
type: boolean
description: |-
True if the namespace supports paginated workflow task completion, i.e.
`RespondWorkflowTaskCompleted` requests split across multiple pages. SDKs must check this
capability before sending a request with `intermediate_page` set to true.
description: Namespace capability details. Should contain what features are enabled in a namespace.
NamespaceInfo_Limits:
type: object
Expand Down
6 changes: 6 additions & 0 deletions temporal/api/errordetails/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,9 @@ message NexusOperationExecutionAlreadyStartedFailure {
string start_request_id = 1;
string run_id = 2;
}

// An error indicating that the server lost the buffered pages of a paginated workflow task
// completion. This is a transient error: the workflow task is still valid, and the client
// should resend all pages from page 0 using the same task token.
message WorkflowTaskCompletionBufferLostFailure {
}
4 changes: 4 additions & 0 deletions temporal/api/namespace/v1/message.proto
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ message NamespaceInfo {
bool standalone_nexus_operation = 11;
// True if the namespace supports attaching callbacks on workflow updates
bool workflow_update_callbacks = 12;
// True if the namespace supports paginated workflow task completion, i.e.
// `RespondWorkflowTaskCompleted` requests split across multiple pages. SDKs must check this
// capability before sending a request with `intermediate_page` set to true.
bool workflow_task_completion_pagination = 13;
}

// Namespace configured limits
Expand Down
10 changes: 10 additions & 0 deletions temporal/api/workflowservice/v1/request_response.proto
Original file line number Diff line number Diff line change
Expand Up @@ -424,6 +424,16 @@ message RespondWorkflowTaskCompletedRequest {
// tasks (e.g. activity cancellation) to this specific worker instance.
string worker_control_task_queue = 20;

// 0-indexed page number when the workflow task completion is split across multiple
// requests ("pages"). 0 for single-page requests. May only be set to non-zero value
// when the namespace capability workflow_task_completion_pagination is true.
int32 page_number = 21;

// True for non-final pages of a paginated workflow task completion. The final page's
// `page_number` tells the server how many intermediate pages (0..page_number-1) preceded it.
// May only be used when the namespace capability workflow_task_completion_pagination is true.
bool intermediate_page = 22;

// SDK capability details.
message Capabilities {
// True if the SDK can handle speculative workflow task with command events. If true, the
Expand Down
Loading