Skip to content
Open
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
37 changes: 37 additions & 0 deletions temporal/api/protometa/v1/annotations.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
syntax = "proto3";

package temporal.api.protometa.v1;

option go_package = "go.temporal.io/api/protometa/v1;protometa";
option java_package = "io.temporal.api.protometa.v1";
option java_multiple_files = true;
option java_outer_classname = "AnnotationsProto";
option ruby_package = "Temporalio::Api::Protometa::V1";
option csharp_namespace = "Temporalio.Api.Protometa.V1";

import "google/protobuf/descriptor.proto";

// RequestHeaderAnnotation allows specifying that field values from a request
// should be propagated as outbound headers.
//
// The value field supports template interpolation where field paths enclosed
// in braces will be replaced with the actual field values from the request.
// For example:
// value: "{workflow_execution.workflow_id}"
// value: "workflow-{workflow_execution.workflow_id}"
// value: "{namespace}/{workflow_execution.workflow_id}"
message RequestHeaderAnnotation {
// The name of the header to set (e.g., "temporal-resource-id")
string header = 1;

// A template string that may contain field paths in braces.
// Field paths use dot notation to traverse nested messages.
// Example: "{workflow_execution.workflow_id}"
string value = 2;
}

// Extension to add request-header annotations to RPC methods.
// Multiple headers can be set by repeating this option.
extend google.protobuf.MethodOptions {
repeated RequestHeaderAnnotation request_header = 7234001;
}
38 changes: 38 additions & 0 deletions temporal/api/workflowservice/v1/request_response.proto
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,8 @@ message RespondWorkflowTaskCompletedRequest {
// Responses to the `queries` field in the task being responded to
map<string, temporal.api.query.v1.WorkflowQueryResult> query_results = 8;
string namespace = 9;
// Resource ID for routing. Contains the workflow ID from the original task.
string resource_id = 18;
// Version info of the worker who processed this task. This message's `build_id` field should
// always be set by SDKs. Workers opting into versioning will also set the `use_versioning`
// field to true. See message docstrings for more.
Expand Down Expand Up @@ -418,6 +420,8 @@ message RespondWorkflowTaskFailedRequest {
// Worker process' unique binary id
string binary_checksum = 5 [deprecated = true];
string namespace = 6;
// Resource ID for routing. Contains the workflow ID from the original task.
string resource_id = 11;
// Protocol messages piggybacking on a WFT as a transport
repeated temporal.api.protocol.v1.Message messages = 7;
// Version info of the worker who processed this task. This message's `build_id` field should
Expand Down Expand Up @@ -522,6 +526,8 @@ message RecordActivityTaskHeartbeatRequest {
// The identity of the worker/client
string identity = 3;
string namespace = 4;
// Resource ID for routing. Contains the workflow ID or activity ID for standalone activities.
string resource_id = 5;
}

message RecordActivityTaskHeartbeatResponse {
Expand Down Expand Up @@ -551,6 +557,8 @@ message RecordActivityTaskHeartbeatByIdRequest {
temporal.api.common.v1.Payloads details = 5;
// The identity of the worker/client
string identity = 6;
// Resource ID for routing. Contains "workflow:workflow_id" or "activity:activity_id" for standalone activities.
string resource_id = 7;
}

message RecordActivityTaskHeartbeatByIdResponse {
Expand All @@ -574,6 +582,8 @@ message RespondActivityTaskCompletedRequest {
// The identity of the worker/client
string identity = 3;
string namespace = 4;
// Resource ID for routing. Contains the workflow ID or activity ID for standalone activities.
string resource_id = 8;
// Version info of the worker who processed this task. This message's `build_id` field should
// always be set by SDKs. Workers opting into versioning will also set the `use_versioning`
// field to true. See message docstrings for more.
Expand Down Expand Up @@ -604,6 +614,8 @@ message RespondActivityTaskCompletedByIdRequest {
temporal.api.common.v1.Payloads result = 5;
// The identity of the worker/client
string identity = 6;
// Resource ID for routing. Contains "workflow:workflow_id" or "activity:activity_id" for standalone activities.
string resource_id = 7;
}

message RespondActivityTaskCompletedByIdResponse {
Expand All @@ -617,6 +629,8 @@ message RespondActivityTaskFailedRequest {
// The identity of the worker/client
string identity = 3;
string namespace = 4;
// Resource ID for routing. Contains the workflow ID or activity ID for standalone activities.
string resource_id = 9;
// Additional details to be stored as last activity heartbeat
temporal.api.common.v1.Payloads last_heartbeat_details = 5;
// Version info of the worker who processed this task. This message's `build_id` field should
Expand Down Expand Up @@ -654,6 +668,8 @@ message RespondActivityTaskFailedByIdRequest {
string identity = 6;
// Additional details to be stored as last activity heartbeat
temporal.api.common.v1.Payloads last_heartbeat_details = 7;
// Resource ID for routing. Contains "workflow:workflow_id" or "activity:activity_id" for standalone activities.
string resource_id = 8;
}

message RespondActivityTaskFailedByIdResponse {
Expand All @@ -670,6 +686,8 @@ message RespondActivityTaskCanceledRequest {
// The identity of the worker/client
string identity = 3;
string namespace = 4;
// Resource ID for routing. Contains the workflow ID or activity ID for standalone activities.
string resource_id = 8;
// Version info of the worker who processed this task. This message's `build_id` field should
// always be set by SDKs. Workers opting into versioning will also set the `use_versioning`
// field to true. See message docstrings for more.
Expand Down Expand Up @@ -702,6 +720,8 @@ message RespondActivityTaskCanceledByIdRequest {
string identity = 6;
// Worker deployment options that user has set in the worker.
temporal.api.deployment.v1.WorkerDeploymentOptions deployment_options = 7;
// Resource ID for routing. Contains "workflow:workflow_id" or "activity:activity_id" for standalone activities.
string resource_id = 8;
}

message RespondActivityTaskCanceledByIdResponse {
Expand Down Expand Up @@ -1000,6 +1020,8 @@ message RespondQueryTaskCompletedRequest {
string error_message = 4;
reserved 5;
string namespace = 6;
// Resource ID for routing. Contains the workflow ID from the original task.
string resource_id = 9;
// The full reason for this query failure. This field is newer than `error_message` and can be
// encoded by the SDK's failure converter to support E2E encryption of messages and stack
// traces.
Expand Down Expand Up @@ -1872,6 +1894,8 @@ message PollNexusTaskQueueResponse {
temporal.api.nexus.v1.Request request = 2;
// Server-advised information the SDK may use to adjust its poller count.
temporal.api.taskqueue.v1.PollerScalingDecision poller_scaling_decision = 3;
// Resource ID for routing. Workers should pass this value in response requests.
string resource_id = 4;
}

message RespondNexusTaskCompletedRequest {
Expand All @@ -1882,6 +1906,8 @@ message RespondNexusTaskCompletedRequest {
bytes task_token = 3;
// Embedded response to be translated into a frontend response.
temporal.api.nexus.v1.Response response = 4;
// Resource ID for routing. Should match the value from PollNexusTaskQueueResponse.
string resource_id = 5;
}

message RespondNexusTaskCompletedResponse {
Expand All @@ -1897,6 +1923,8 @@ message RespondNexusTaskFailedRequest {
temporal.api.nexus.v1.HandlerError error = 4 [deprecated = true];
// The error the handler failed with. Must contain a NexusHandlerFailureInfo object.
temporal.api.failure.v1.Failure failure = 5;
// Resource ID for routing. Should match the value from PollNexusTaskQueueResponse.
string resource_id = 6;
}

message RespondNexusTaskFailedResponse {
Expand All @@ -1915,6 +1943,9 @@ message ExecuteMultiOperationRequest {
// Note that additional operation-specific restrictions have to be considered.
repeated Operation operations = 2;

// Resource ID for routing. Should match operations[0].start_workflow.workflow_id
string resource_id = 3;

message Operation {
oneof operation {
// Additional restrictions:
Expand Down Expand Up @@ -2549,6 +2580,9 @@ message RecordWorkerHeartbeatRequest {
string identity = 2;

repeated temporal.api.worker.v1.WorkerHeartbeat worker_heartbeat = 3;

// Resource ID for routing. Contains the worker grouping key.
string resource_id = 4;
}

message RecordWorkerHeartbeatResponse {
Expand Down Expand Up @@ -2632,6 +2666,8 @@ message FetchWorkerConfigRequest {
// Defines which workers should receive this command.
// only single worker is supported at this time.
temporal.api.common.v1.WorkerSelector selector = 6;
// Resource ID for routing. Contains the worker grouping key.
string resource_id = 7;
}

message FetchWorkerConfigResponse {
Expand All @@ -2658,6 +2694,8 @@ message UpdateWorkerConfigRequest {

// Defines which workers should receive this command.
temporal.api.common.v1.WorkerSelector selector = 6;
// Resource ID for routing. Contains the worker grouping key.
string resource_id = 7;
}

message UpdateWorkerConfigResponse {
Expand Down
Loading
Loading