@temporalio/core-bridge 1.14.1 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +648 -606
- package/bridge-macros/src/derive_tryintojs.rs +40 -0
- package/lib/native.d.ts +23 -2
- package/package.json +12 -13
- package/releases/aarch64-apple-darwin/index.node +0 -0
- package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
- package/releases/x86_64-apple-darwin/index.node +0 -0
- package/releases/x86_64-pc-windows-msvc/index.node +0 -0
- package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
- package/sdk-core/.cargo/multi-worker-manual-test +0 -0
- package/sdk-core/AGENTS.md +2 -2
- package/sdk-core/Cargo.toml +1 -1
- package/sdk-core/README.md +5 -5
- package/sdk-core/crates/client/src/raw.rs +90 -0
- package/sdk-core/crates/client/src/worker/mod.rs +103 -28
- package/sdk-core/crates/common/Cargo.toml +1 -1
- package/sdk-core/crates/common/protos/api_upstream/.github/workflows/create-release.yml +0 -5
- package/sdk-core/crates/common/protos/api_upstream/README.md +8 -0
- package/sdk-core/crates/common/protos/api_upstream/buf.yaml +3 -0
- package/sdk-core/crates/common/protos/api_upstream/openapi/openapiv2.json +2738 -2452
- package/sdk-core/crates/common/protos/api_upstream/openapi/openapiv3.yaml +1657 -124
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/activity/v1/message.proto +155 -3
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/command/v1/message.proto +26 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/common/v1/message.proto +8 -1
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/deployment/v1/message.proto +26 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/activity.proto +81 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/event_type.proto +4 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +4 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +15 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/enums/v1/workflow.proto +62 -15
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/errordetails/v1/message.proto +8 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/history/v1/message.proto +107 -17
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/namespace/v1/message.proto +15 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/nexus/v1/message.proto +4 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +4 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/schedule/v1/message.proto +2 -2
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +2 -0
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/worker/v1/message.proto +4 -7
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflow/v1/message.proto +80 -22
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +285 -19
- package/sdk-core/crates/common/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +154 -10
- package/sdk-core/crates/common/protos/local/temporal/sdk/core/core_interface.proto +15 -0
- package/sdk-core/crates/common/protos/local/temporal/sdk/core/nexus/nexus.proto +5 -0
- package/sdk-core/crates/common/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +4 -0
- package/sdk-core/crates/common/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +17 -0
- package/sdk-core/crates/common/src/lib.rs +3 -3
- package/sdk-core/crates/common/src/protos/canned_histories.rs +16 -0
- package/sdk-core/crates/common/src/protos/mod.rs +12 -0
- package/sdk-core/crates/common/src/telemetry/metrics.rs +6 -4
- package/sdk-core/crates/common/src/telemetry.rs +14 -15
- package/sdk-core/crates/common/src/worker.rs +66 -99
- package/sdk-core/crates/common/tests/worker_task_types_test.rs +9 -9
- package/sdk-core/crates/sdk/src/lib.rs +10 -8
- package/sdk-core/crates/sdk/src/workflow_context/options.rs +19 -0
- package/sdk-core/crates/sdk-core/Cargo.toml +2 -1
- package/sdk-core/crates/sdk-core/benches/workflow_replay_bench.rs +4 -19
- package/sdk-core/crates/sdk-core/src/core_tests/mod.rs +9 -6
- package/sdk-core/crates/sdk-core/src/core_tests/workers.rs +166 -13
- package/sdk-core/crates/sdk-core/src/core_tests/workflow_tasks.rs +42 -33
- package/sdk-core/crates/sdk-core/src/ephemeral_server/mod.rs +6 -9
- package/sdk-core/crates/sdk-core/src/lib.rs +20 -13
- package/sdk-core/crates/sdk-core/src/pollers/poll_buffer.rs +301 -21
- package/sdk-core/crates/sdk-core/src/telemetry/log_export.rs +7 -10
- package/sdk-core/crates/sdk-core/src/telemetry/metrics.rs +4 -2
- package/sdk-core/crates/sdk-core/src/telemetry/mod.rs +2 -3
- package/sdk-core/crates/sdk-core/src/test_help/integ_helpers.rs +30 -8
- package/sdk-core/crates/sdk-core/src/worker/activities/activity_heartbeat_manager.rs +1 -0
- package/sdk-core/crates/sdk-core/src/worker/client/mocks.rs +3 -1
- package/sdk-core/crates/sdk-core/src/worker/client.rs +2 -6
- package/sdk-core/crates/sdk-core/src/worker/heartbeat.rs +4 -4
- package/sdk-core/crates/sdk-core/src/worker/mod.rs +92 -53
- package/sdk-core/crates/sdk-core/src/worker/nexus.rs +5 -0
- package/sdk-core/crates/sdk-core/src/worker/tuner/resource_based.rs +12 -14
- package/sdk-core/crates/sdk-core/src/worker/tuner.rs +36 -36
- package/sdk-core/crates/sdk-core/src/worker/workflow/machines/patch_state_machine.rs +5 -8
- package/sdk-core/crates/sdk-core/src/worker/workflow/machines/workflow_machines.rs +12 -1
- package/sdk-core/crates/sdk-core/src/worker/workflow/managed_run.rs +6 -23
- package/sdk-core/crates/sdk-core/src/worker/workflow/mod.rs +46 -3
- package/sdk-core/crates/sdk-core/tests/common/mod.rs +45 -45
- package/sdk-core/crates/sdk-core/tests/global_metric_tests.rs +7 -10
- package/sdk-core/crates/sdk-core/tests/heavy_tests/fuzzy_workflow.rs +3 -5
- package/sdk-core/crates/sdk-core/tests/heavy_tests.rs +34 -42
- package/sdk-core/crates/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +21 -26
- package/sdk-core/crates/sdk-core/tests/integ_tests/heartbeat_tests.rs +1 -0
- package/sdk-core/crates/sdk-core/tests/integ_tests/metrics_tests.rs +147 -72
- package/sdk-core/crates/sdk-core/tests/integ_tests/polling_tests.rs +27 -48
- package/sdk-core/crates/sdk-core/tests/integ_tests/update_tests.rs +5 -15
- package/sdk-core/crates/sdk-core/tests/integ_tests/worker_heartbeat_tests.rs +61 -66
- package/sdk-core/crates/sdk-core/tests/integ_tests/worker_tests.rs +16 -14
- package/sdk-core/crates/sdk-core/tests/integ_tests/worker_versioning_tests.rs +15 -21
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/activities.rs +16 -19
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -3
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +1 -3
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +4 -12
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +14 -9
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +1 -3
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/eager.rs +2 -6
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +4 -8
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +1 -3
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/nexus.rs +11 -13
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/patches.rs +11 -27
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/resets.rs +3 -5
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/signals.rs +4 -12
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +7 -13
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/timers.rs +4 -12
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +1 -3
- package/sdk-core/crates/sdk-core/tests/integ_tests/workflow_tests.rs +16 -30
- package/sdk-core/crates/sdk-core/tests/main.rs +6 -2
- package/sdk-core/crates/sdk-core/tests/manual_tests.rs +40 -49
- package/sdk-core/crates/sdk-core/tests/runner.rs +4 -6
- package/sdk-core/crates/sdk-core/tests/shared_tests/mod.rs +28 -13
- package/sdk-core/crates/sdk-core-c-bridge/Cargo.toml +1 -0
- package/sdk-core/crates/sdk-core-c-bridge/include/temporal-sdk-core-c-bridge.h +24 -13
- package/sdk-core/crates/sdk-core-c-bridge/src/client.rs +103 -19
- package/sdk-core/crates/sdk-core-c-bridge/src/lib.rs +89 -5
- package/sdk-core/crates/sdk-core-c-bridge/src/metric.rs +1 -2
- package/sdk-core/crates/sdk-core-c-bridge/src/runtime.rs +59 -66
- package/sdk-core/crates/sdk-core-c-bridge/src/testing.rs +10 -10
- package/sdk-core/crates/sdk-core-c-bridge/src/tests/context.rs +46 -11
- package/sdk-core/crates/sdk-core-c-bridge/src/tests/mod.rs +103 -7
- package/sdk-core/crates/sdk-core-c-bridge/src/tests/utils.rs +6 -48
- package/sdk-core/crates/sdk-core-c-bridge/src/worker.rs +13 -17
- package/sdk-core/docker-cgroup-tests.sh +0 -0
- package/sdk-core/etc/cargo-tokio-console.sh +0 -0
- package/sdk-core/etc/integ-with-otel.sh +0 -0
- package/sdk-core/etc/regen-depgraph.sh +0 -0
- package/src/client.rs +30 -0
- package/src/helpers/try_into_js.rs +88 -2
- package/src/metrics.rs +272 -22
- package/src/runtime.rs +91 -41
- package/src/testing.rs +9 -16
- package/src/worker.rs +76 -55
- package/ts/native.ts +38 -2
- package/LICENSE +0 -21
- package/sdk-core/crates/macros/LICENSE.txt +0 -21
|
@@ -9,10 +9,26 @@ option java_outer_classname = "MessageProto";
|
|
|
9
9
|
option ruby_package = "Temporalio::Api::Activity::V1";
|
|
10
10
|
option csharp_namespace = "Temporalio.Api.Activity.V1";
|
|
11
11
|
|
|
12
|
+
import "google/protobuf/duration.proto";
|
|
13
|
+
import "google/protobuf/timestamp.proto";
|
|
14
|
+
|
|
12
15
|
import "temporal/api/common/v1/message.proto";
|
|
16
|
+
import "temporal/api/deployment/v1/message.proto";
|
|
17
|
+
import "temporal/api/enums/v1/activity.proto";
|
|
18
|
+
import "temporal/api/enums/v1/workflow.proto";
|
|
19
|
+
import "temporal/api/failure/v1/message.proto";
|
|
13
20
|
import "temporal/api/taskqueue/v1/message.proto";
|
|
21
|
+
import "temporal/api/sdk/v1/user_metadata.proto";
|
|
14
22
|
|
|
15
|
-
|
|
23
|
+
// The outcome of a completed activity execution: either a successful result or a failure.
|
|
24
|
+
message ActivityExecutionOutcome {
|
|
25
|
+
oneof value {
|
|
26
|
+
// The result if the activity completed successfully.
|
|
27
|
+
temporal.api.common.v1.Payloads result = 1;
|
|
28
|
+
// The failure if the activity completed unsuccessfully.
|
|
29
|
+
temporal.api.failure.v1.Failure failure = 2;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
16
32
|
|
|
17
33
|
message ActivityOptions {
|
|
18
34
|
temporal.api.taskqueue.v1.TaskQueue task_queue = 1;
|
|
@@ -40,6 +56,142 @@ message ActivityOptions {
|
|
|
40
56
|
google.protobuf.Duration start_to_close_timeout = 4;
|
|
41
57
|
// Maximum permitted time between successful worker heartbeats.
|
|
42
58
|
google.protobuf.Duration heartbeat_timeout = 5;
|
|
43
|
-
|
|
59
|
+
// The retry policy for the activity. Will never exceed `schedule_to_close_timeout`.
|
|
44
60
|
temporal.api.common.v1.RetryPolicy retry_policy = 6;
|
|
45
|
-
|
|
61
|
+
|
|
62
|
+
// Priority metadata. If this message is not present, or any fields are not
|
|
63
|
+
// present, they inherit the values from the workflow.
|
|
64
|
+
temporal.api.common.v1.Priority priority = 7;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Information about a standalone activity.
|
|
68
|
+
message ActivityExecutionInfo {
|
|
69
|
+
// Unique identifier of this activity within its namespace along with run ID (below).
|
|
70
|
+
string activity_id = 1;
|
|
71
|
+
string run_id = 2;
|
|
72
|
+
|
|
73
|
+
// The type of the activity, a string that maps to a registered activity on a worker.
|
|
74
|
+
temporal.api.common.v1.ActivityType activity_type = 3;
|
|
75
|
+
// A general status for this activity, indicates whether it is currently running or in one of the terminal statuses.
|
|
76
|
+
temporal.api.enums.v1.ActivityExecutionStatus status = 4;
|
|
77
|
+
// More detailed breakdown of ACTIVITY_EXECUTION_STATUS_RUNNING.
|
|
78
|
+
temporal.api.enums.v1.PendingActivityState run_state = 5;
|
|
79
|
+
|
|
80
|
+
string task_queue = 6;
|
|
81
|
+
|
|
82
|
+
// Indicates how long the caller is willing to wait for an activity completion. Limits how long
|
|
83
|
+
// retries will be attempted.
|
|
84
|
+
//
|
|
85
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
86
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
87
|
+
google.protobuf.Duration schedule_to_close_timeout = 7;
|
|
88
|
+
// Limits time an activity task can stay in a task queue before a worker picks it up. This
|
|
89
|
+
// timeout is always non retryable, as all a retry would achieve is to put it back into the same
|
|
90
|
+
// queue. Defaults to `schedule_to_close_timeout`.
|
|
91
|
+
//
|
|
92
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
93
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
94
|
+
google.protobuf.Duration schedule_to_start_timeout = 8;
|
|
95
|
+
// Maximum time a single activity attempt is allowed to execute after being picked up by a worker. This
|
|
96
|
+
// timeout is always retryable.
|
|
97
|
+
//
|
|
98
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
99
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
100
|
+
google.protobuf.Duration start_to_close_timeout = 9;
|
|
101
|
+
|
|
102
|
+
// Maximum permitted time between successful worker heartbeats.
|
|
103
|
+
google.protobuf.Duration heartbeat_timeout = 10;
|
|
104
|
+
|
|
105
|
+
// The retry policy for the activity. Will never exceed `schedule_to_close_timeout`.
|
|
106
|
+
temporal.api.common.v1.RetryPolicy retry_policy = 11;
|
|
107
|
+
|
|
108
|
+
// Details provided in the last recorded activity heartbeat.
|
|
109
|
+
temporal.api.common.v1.Payloads heartbeat_details = 12;
|
|
110
|
+
// Time the last heartbeat was recorded.
|
|
111
|
+
google.protobuf.Timestamp last_heartbeat_time = 13;
|
|
112
|
+
// Time the last attempt was started.
|
|
113
|
+
google.protobuf.Timestamp last_started_time = 14;
|
|
114
|
+
// The attempt this activity is currently on. Incremented each time a new attempt is scheduled.
|
|
115
|
+
int32 attempt = 15;
|
|
116
|
+
// How long this activity has been running for, including all attempts and backoff between attempts.
|
|
117
|
+
google.protobuf.Duration execution_duration = 16;
|
|
118
|
+
// Time the activity was originally scheduled via a StartActivityExecution request.
|
|
119
|
+
google.protobuf.Timestamp schedule_time = 17;
|
|
120
|
+
// Scheduled time + schedule to close timeout.
|
|
121
|
+
google.protobuf.Timestamp expiration_time = 18;
|
|
122
|
+
// Time when the activity transitioned to a closed state.
|
|
123
|
+
google.protobuf.Timestamp close_time = 19;
|
|
124
|
+
|
|
125
|
+
// Failure details from the last failed attempt.
|
|
126
|
+
temporal.api.failure.v1.Failure last_failure = 20;
|
|
127
|
+
string last_worker_identity = 21;
|
|
128
|
+
|
|
129
|
+
// Time from the last attempt failure to the next activity retry.
|
|
130
|
+
// If the activity is currently running, this represents the next retry interval in case the attempt fails.
|
|
131
|
+
// If activity is currently backing off between attempt, this represents the current retry interval.
|
|
132
|
+
// If there is no next retry allowed, this field will be null.
|
|
133
|
+
// This interval is typically calculated from the specified retry policy, but may be modified if an activity fails
|
|
134
|
+
// with a retryable application failure specifying a retry delay.
|
|
135
|
+
google.protobuf.Duration current_retry_interval = 22;
|
|
136
|
+
|
|
137
|
+
// The time when the last activity attempt completed. If activity has not been completed yet, it will be null.
|
|
138
|
+
google.protobuf.Timestamp last_attempt_complete_time = 23;
|
|
139
|
+
|
|
140
|
+
// The time when the next activity attempt will be scheduled.
|
|
141
|
+
// If activity is currently scheduled or started, this field will be null.
|
|
142
|
+
google.protobuf.Timestamp next_attempt_schedule_time = 24;
|
|
143
|
+
|
|
144
|
+
// The Worker Deployment Version this activity was dispatched to most recently.
|
|
145
|
+
// If nil, the activity has not yet been dispatched or was last dispatched to an unversioned worker.
|
|
146
|
+
temporal.api.deployment.v1.WorkerDeploymentVersion last_deployment_version = 25;
|
|
147
|
+
|
|
148
|
+
// Priority metadata.
|
|
149
|
+
temporal.api.common.v1.Priority priority = 26;
|
|
150
|
+
|
|
151
|
+
// Incremented each time the activity's state is mutated in persistence.
|
|
152
|
+
int64 state_transition_count = 27;
|
|
153
|
+
|
|
154
|
+
// Updated once on scheduled and once on terminal status.
|
|
155
|
+
int64 state_size_bytes = 28;
|
|
156
|
+
|
|
157
|
+
temporal.api.common.v1.SearchAttributes search_attributes = 29;
|
|
158
|
+
temporal.api.common.v1.Header header = 30;
|
|
159
|
+
// Metadata for use by user interfaces to display the fixed as-of-start summary and details of the activity.
|
|
160
|
+
temporal.api.sdk.v1.UserMetadata user_metadata = 31;
|
|
161
|
+
|
|
162
|
+
// Set if activity cancelation was requested.
|
|
163
|
+
string canceled_reason = 32;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Limited activity information returned in the list response.
|
|
167
|
+
// When adding fields here, ensure that it is also present in ActivityExecutionInfo (note that it
|
|
168
|
+
// may already be present in ActivityExecutionInfo but not at the top-level).
|
|
169
|
+
message ActivityExecutionListInfo {
|
|
170
|
+
// A unique identifier of this activity within its namespace along with run ID (below).
|
|
171
|
+
string activity_id = 1;
|
|
172
|
+
// The run ID of the standalone activity.
|
|
173
|
+
string run_id = 2;
|
|
174
|
+
|
|
175
|
+
// The type of the activity, a string that maps to a registered activity on a worker.
|
|
176
|
+
temporal.api.common.v1.ActivityType activity_type = 3;
|
|
177
|
+
// Time the activity was originally scheduled via a StartActivityExecution request.
|
|
178
|
+
google.protobuf.Timestamp schedule_time = 4;
|
|
179
|
+
// If the activity is in a terminal status, this field represents the time the activity transitioned to that status.
|
|
180
|
+
google.protobuf.Timestamp close_time = 5;
|
|
181
|
+
// Only scheduled and terminal statuses appear here. More detailed information in PendingActivityInfo but not
|
|
182
|
+
// available in the list response.
|
|
183
|
+
temporal.api.enums.v1.ActivityExecutionStatus status = 6;
|
|
184
|
+
|
|
185
|
+
// Search attributes from the start request.
|
|
186
|
+
temporal.api.common.v1.SearchAttributes search_attributes = 7;
|
|
187
|
+
|
|
188
|
+
// The task queue this activity was scheduled on when it was originally started, updated on activity options update.
|
|
189
|
+
string task_queue = 8;
|
|
190
|
+
// Updated on terminal status.
|
|
191
|
+
int64 state_transition_count = 9;
|
|
192
|
+
// Updated once on scheduled and once on terminal status.
|
|
193
|
+
int64 state_size_bytes = 10;
|
|
194
|
+
// The difference between close time and scheduled time.
|
|
195
|
+
// This field is only populated if the activity is closed.
|
|
196
|
+
google.protobuf.Duration execution_duration = 11;
|
|
197
|
+
}
|
|
@@ -179,6 +179,11 @@ message ContinueAsNewWorkflowExecutionCommandAttributes {
|
|
|
179
179
|
// Deprecated. Only considered for versioning v0.2.
|
|
180
180
|
bool inherit_build_id = 15 [deprecated = true];
|
|
181
181
|
|
|
182
|
+
// Experimental. Optionally decide the versioning behavior that the first task of the new run should use.
|
|
183
|
+
// For example, choose to AutoUpgrade on continue-as-new instead of inheriting the pinned version
|
|
184
|
+
// of the previous run.
|
|
185
|
+
temporal.api.enums.v1.ContinueAsNewVersioningBehavior initial_versioning_behavior = 16;
|
|
186
|
+
|
|
182
187
|
// `workflow_execution_timeout` is omitted as it shouldn't be overridden from within a workflow.
|
|
183
188
|
}
|
|
184
189
|
|
|
@@ -244,6 +249,27 @@ message ScheduleNexusOperationCommandAttributes {
|
|
|
244
249
|
// Note these headers are not the same as Temporal headers on internal activities and child workflows, these are
|
|
245
250
|
// transmitted to Nexus operations that may be external and are not traditional payloads.
|
|
246
251
|
map<string, string> nexus_header = 6;
|
|
252
|
+
|
|
253
|
+
// Schedule-to-start timeout for this operation.
|
|
254
|
+
// Indicates how long the caller is willing to wait for the operation to be started (or completed if synchronous)
|
|
255
|
+
// by the handler. If the operation is not started within this timeout, it will fail with
|
|
256
|
+
// TIMEOUT_TYPE_SCHEDULE_TO_START.
|
|
257
|
+
// If not set or zero, no schedule-to-start timeout is enforced.
|
|
258
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
259
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
260
|
+
// Requires server version 1.31.0 or later.
|
|
261
|
+
google.protobuf.Duration schedule_to_start_timeout = 7;
|
|
262
|
+
|
|
263
|
+
// Start-to-close timeout for this operation.
|
|
264
|
+
// Indicates how long the caller is willing to wait for an asynchronous operation to complete after it has been
|
|
265
|
+
// started. If the operation does not complete within this timeout after starting, it will fail with
|
|
266
|
+
// TIMEOUT_TYPE_START_TO_CLOSE.
|
|
267
|
+
// Only applies to asynchronous operations. Synchronous operations ignore this timeout.
|
|
268
|
+
// If not set or zero, no start-to-close timeout is enforced.
|
|
269
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
270
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
271
|
+
// Requires server version 1.31.0 or later.
|
|
272
|
+
google.protobuf.Duration start_to_close_timeout = 8;
|
|
247
273
|
}
|
|
248
274
|
|
|
249
275
|
message RequestCancelNexusOperationCommandAttributes {
|
|
@@ -32,6 +32,14 @@ message Payloads {
|
|
|
32
32
|
message Payload {
|
|
33
33
|
map<string,bytes> metadata = 1;
|
|
34
34
|
bytes data = 2;
|
|
35
|
+
// Details about externally stored payloads associated with this payload.
|
|
36
|
+
repeated ExternalPayloadDetails external_payloads = 3;
|
|
37
|
+
|
|
38
|
+
// Describes an externally stored object referenced by this payload.
|
|
39
|
+
message ExternalPayloadDetails {
|
|
40
|
+
// Size in bytes of the externally stored payload
|
|
41
|
+
int64 size_bytes = 1;
|
|
42
|
+
}
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
// A user-defined set of *indexed* fields that are used/exposed when listing/searching workflows.
|
|
@@ -338,4 +346,3 @@ message WorkerSelector {
|
|
|
338
346
|
string worker_instance_key = 1;
|
|
339
347
|
}
|
|
340
348
|
}
|
|
341
|
-
|
|
@@ -120,7 +120,13 @@ message WorkerDeploymentVersionInfo {
|
|
|
120
120
|
|
|
121
121
|
// Timestamp when this version first became current or ramping.
|
|
122
122
|
google.protobuf.Timestamp first_activation_time = 12;
|
|
123
|
+
|
|
124
|
+
// Timestamp when this version last became current.
|
|
125
|
+
// Can be used to determine whether a version has ever been Current.
|
|
126
|
+
google.protobuf.Timestamp last_current_time = 15;
|
|
127
|
+
|
|
123
128
|
// Timestamp when this version last stopped being current or ramping.
|
|
129
|
+
// Cleared if the version becomes current or ramping again.
|
|
124
130
|
google.protobuf.Timestamp last_deactivation_time = 13;
|
|
125
131
|
|
|
126
132
|
// Range: [0, 100]. Must be zero if the version is not ramping (i.e. `ramping_since_time` is nil).
|
|
@@ -201,6 +207,10 @@ message WorkerDeploymentInfo {
|
|
|
201
207
|
// to this Worker Deployment. They can either set their own identity as the manager or unset the field to proceed.
|
|
202
208
|
string manager_identity = 6;
|
|
203
209
|
|
|
210
|
+
// Indicates whether the routing_config has been fully propagated to all
|
|
211
|
+
// relevant task queues and their partitions.
|
|
212
|
+
temporal.api.enums.v1.RoutingConfigUpdateState routing_config_update_state = 7;
|
|
213
|
+
|
|
204
214
|
message WorkerDeploymentVersionSummary {
|
|
205
215
|
// Deprecated. Use `deployment_version`.
|
|
206
216
|
string version = 1 [deprecated = true];
|
|
@@ -228,7 +238,11 @@ message WorkerDeploymentInfo {
|
|
|
228
238
|
google.protobuf.Timestamp routing_update_time = 8;
|
|
229
239
|
// Timestamp when this version first became current or ramping.
|
|
230
240
|
google.protobuf.Timestamp first_activation_time = 9;
|
|
241
|
+
// Timestamp when this version last became current.
|
|
242
|
+
// Can be used to determine whether a version has ever been Current.
|
|
243
|
+
google.protobuf.Timestamp last_current_time = 12;
|
|
231
244
|
// Timestamp when this version last stopped being current or ramping.
|
|
245
|
+
// Cleared if the version becomes current or ramping again.
|
|
232
246
|
google.protobuf.Timestamp last_deactivation_time = 10;
|
|
233
247
|
}
|
|
234
248
|
}
|
|
@@ -285,4 +299,16 @@ message RoutingConfig {
|
|
|
285
299
|
// Last time ramping version percentage was changed.
|
|
286
300
|
// If ramping version is changed, this is also updated, even if the percentage stays the same.
|
|
287
301
|
google.protobuf.Timestamp ramping_version_percentage_changed_time = 6;
|
|
302
|
+
// Monotonically increasing value which is incremented on every mutation
|
|
303
|
+
// to any field of this message to achieve eventual consistency between task queues and their partitions.
|
|
304
|
+
int64 revision_number = 10;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// Used as part of WorkflowExecutionStartedEventAttributes to pass down the AutoUpgrade behavior and source deployment version
|
|
308
|
+
// to a workflow execution whose parent/previous workflow has an AutoUpgrade behavior.
|
|
309
|
+
message InheritedAutoUpgradeInfo {
|
|
310
|
+
// The source deployment version of the parent/previous workflow.
|
|
311
|
+
temporal.api.deployment.v1.WorkerDeploymentVersion source_deployment_version = 1;
|
|
312
|
+
// The revision number of the source deployment version of the parent/previous workflow.
|
|
313
|
+
int64 source_deployment_revision_number = 2;
|
|
288
314
|
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
package temporal.api.enums.v1;
|
|
4
|
+
|
|
5
|
+
option go_package = "go.temporal.io/api/enums/v1;enums";
|
|
6
|
+
option java_package = "io.temporal.api.enums.v1";
|
|
7
|
+
option java_multiple_files = true;
|
|
8
|
+
option java_outer_classname = "ActivityProto";
|
|
9
|
+
option ruby_package = "Temporalio::Api::Enums::V1";
|
|
10
|
+
option csharp_namespace = "Temporalio.Api.Enums.V1";
|
|
11
|
+
|
|
12
|
+
// Status of a standalone activity.
|
|
13
|
+
// The status is updated once, when the activity is originally scheduled, and again when the activity reaches a terminal
|
|
14
|
+
// status.
|
|
15
|
+
// (-- api-linter: core::0216::synonyms=disabled
|
|
16
|
+
// aip.dev/not-precedent: Named consistently with WorkflowExecutionStatus. --)
|
|
17
|
+
enum ActivityExecutionStatus {
|
|
18
|
+
ACTIVITY_EXECUTION_STATUS_UNSPECIFIED = 0;
|
|
19
|
+
|
|
20
|
+
// The activity has not reached a terminal status. See PendingActivityState for the run state
|
|
21
|
+
// (SCHEDULED, STARTED, or CANCEL_REQUESTED).
|
|
22
|
+
ACTIVITY_EXECUTION_STATUS_RUNNING = 1;
|
|
23
|
+
|
|
24
|
+
// The activity completed successfully. An activity can complete even after cancellation is
|
|
25
|
+
// requested if the worker calls RespondActivityTaskCompleted before acknowledging cancellation.
|
|
26
|
+
ACTIVITY_EXECUTION_STATUS_COMPLETED = 2;
|
|
27
|
+
|
|
28
|
+
// The activity failed. Causes:
|
|
29
|
+
// - Worker returned a non-retryable failure
|
|
30
|
+
// - RetryPolicy.maximum_attempts exhausted
|
|
31
|
+
// - Attempt failed after cancellation was requested (retries blocked)
|
|
32
|
+
ACTIVITY_EXECUTION_STATUS_FAILED = 3;
|
|
33
|
+
|
|
34
|
+
// The activity was canceled. Reached when:
|
|
35
|
+
// - Cancellation requested while SCHEDULED (immediate), or
|
|
36
|
+
// - Cancellation requested while STARTED and worker called RespondActivityTaskCanceled.
|
|
37
|
+
//
|
|
38
|
+
// Workers discover cancellation requests via heartbeat responses (cancel_requested=true).
|
|
39
|
+
// Activities that do not heartbeat will not learn of cancellation and may complete, fail, or
|
|
40
|
+
// time out normally. CANCELED requires explicit worker acknowledgment or immediate cancellation
|
|
41
|
+
// of a SCHEDULED activity.
|
|
42
|
+
ACTIVITY_EXECUTION_STATUS_CANCELED = 4;
|
|
43
|
+
|
|
44
|
+
// The activity was terminated. Immediate; does not wait for worker acknowledgment.
|
|
45
|
+
ACTIVITY_EXECUTION_STATUS_TERMINATED = 5;
|
|
46
|
+
|
|
47
|
+
// The activity timed out. See TimeoutType for the specific timeout.
|
|
48
|
+
// - SCHEDULE_TO_START and SCHEDULE_TO_CLOSE timeouts always result in TIMED_OUT.
|
|
49
|
+
// - START_TO_CLOSE and HEARTBEAT may retry if RetryPolicy permits; TIMED_OUT is
|
|
50
|
+
// reached when retry is blocked (RetryPolicy.maximum_attempts exhausted,
|
|
51
|
+
// SCHEDULE_TO_CLOSE would be exceeded, or cancellation has been requested).
|
|
52
|
+
ACTIVITY_EXECUTION_STATUS_TIMED_OUT = 6;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Defines whether to allow re-using an activity ID from a previously *closed* activity.
|
|
56
|
+
// If the request is denied, the server returns an `ActivityExecutionAlreadyStarted` error.
|
|
57
|
+
//
|
|
58
|
+
// See `ActivityIdConflictPolicy` for handling ID duplication with a *running* activity.
|
|
59
|
+
enum ActivityIdReusePolicy {
|
|
60
|
+
ACTIVITY_ID_REUSE_POLICY_UNSPECIFIED = 0;
|
|
61
|
+
// Always allow starting an activity using the same activity ID.
|
|
62
|
+
ACTIVITY_ID_REUSE_POLICY_ALLOW_DUPLICATE = 1;
|
|
63
|
+
// Allow starting an activity using the same ID only when the last activity's final state is one
|
|
64
|
+
// of {failed, canceled, terminated, timed out}.
|
|
65
|
+
ACTIVITY_ID_REUSE_POLICY_ALLOW_DUPLICATE_FAILED_ONLY = 2;
|
|
66
|
+
// Do not permit re-use of the ID for this activity. Future start requests could potentially change the policy,
|
|
67
|
+
// allowing re-use of the ID.
|
|
68
|
+
ACTIVITY_ID_REUSE_POLICY_REJECT_DUPLICATE = 3;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Defines what to do when trying to start an activity with the same ID as a *running* activity.
|
|
72
|
+
// Note that it is *never* valid to have two running instances of the same activity ID.
|
|
73
|
+
//
|
|
74
|
+
// See `ActivityIdReusePolicy` for handling activity ID duplication with a *closed* activity.
|
|
75
|
+
enum ActivityIdConflictPolicy {
|
|
76
|
+
ACTIVITY_ID_CONFLICT_POLICY_UNSPECIFIED = 0;
|
|
77
|
+
// Don't start a new activity; instead return `ActivityExecutionAlreadyStarted` error.
|
|
78
|
+
ACTIVITY_ID_CONFLICT_POLICY_FAIL = 1;
|
|
79
|
+
// Don't start a new activity; instead return a handle for the running activity.
|
|
80
|
+
ACTIVITY_ID_CONFLICT_POLICY_USE_EXISTING = 2;
|
|
81
|
+
}
|
|
@@ -169,4 +169,8 @@ enum EventType {
|
|
|
169
169
|
EVENT_TYPE_NEXUS_OPERATION_CANCEL_REQUEST_COMPLETED = 56;
|
|
170
170
|
// A cancellation request for a Nexus operation resulted in an error.
|
|
171
171
|
EVENT_TYPE_NEXUS_OPERATION_CANCEL_REQUEST_FAILED = 57;
|
|
172
|
+
// An event that indicates that the workflow execution has been paused.
|
|
173
|
+
EVENT_TYPE_WORKFLOW_EXECUTION_PAUSED = 58;
|
|
174
|
+
// An event that indicates that the previously paused workflow execution has been unpaused.
|
|
175
|
+
EVENT_TYPE_WORKFLOW_EXECUTION_UNPAUSED = 59;
|
|
172
176
|
}
|
|
@@ -81,6 +81,8 @@ enum WorkflowTaskFailedCause {
|
|
|
81
81
|
WORKFLOW_TASK_FAILED_CAUSE_FEATURE_DISABLED = 35;
|
|
82
82
|
// A workflow task failed because a grpc message was too large.
|
|
83
83
|
WORKFLOW_TASK_FAILED_CAUSE_GRPC_MESSAGE_TOO_LARGE = 36;
|
|
84
|
+
// A workflow task failed because payloads were too large.
|
|
85
|
+
WORKFLOW_TASK_FAILED_CAUSE_PAYLOADS_TOO_LARGE = 37;
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
enum StartChildWorkflowExecutionFailedCause {
|
|
@@ -123,6 +125,8 @@ enum ResourceExhaustedCause {
|
|
|
123
125
|
RESOURCE_EXHAUSTED_CAUSE_CIRCUIT_BREAKER_OPEN = 8;
|
|
124
126
|
// Namespace exceeds operations rate limit.
|
|
125
127
|
RESOURCE_EXHAUSTED_CAUSE_OPS_LIMIT = 9;
|
|
128
|
+
// Limits related to Worker Deployments are reached.
|
|
129
|
+
RESOURCE_EXHAUSTED_CAUSE_WORKER_DEPLOYMENT_LIMITS = 10;
|
|
126
130
|
}
|
|
127
131
|
|
|
128
132
|
enum ResourceExhaustedScope {
|
|
@@ -10,6 +10,11 @@ option ruby_package = "Temporalio::Api::Enums::V1";
|
|
|
10
10
|
option csharp_namespace = "Temporalio.Api.Enums.V1";
|
|
11
11
|
|
|
12
12
|
enum TaskQueueKind {
|
|
13
|
+
// Tasks from any non workflow task may be unspecified.
|
|
14
|
+
//
|
|
15
|
+
// Task queue kind is used to differentiate whether a workflow task queue is sticky or
|
|
16
|
+
// normal. If a task is not a workflow task, Task queue kind will sometimes be
|
|
17
|
+
// unspecified.
|
|
13
18
|
TASK_QUEUE_KIND_UNSPECIFIED = 0;
|
|
14
19
|
// Tasks from a normal workflow task queue always include complete workflow history
|
|
15
20
|
//
|
|
@@ -100,3 +105,13 @@ enum RateLimitSource {
|
|
|
100
105
|
// The value was set as the system default.
|
|
101
106
|
RATE_LIMIT_SOURCE_SYSTEM = 3;
|
|
102
107
|
}
|
|
108
|
+
|
|
109
|
+
// Indicates whether a change to the Routing Config has been
|
|
110
|
+
// propagated to all relevant Task Queues and their partitions.
|
|
111
|
+
enum RoutingConfigUpdateState {
|
|
112
|
+
ROUTING_CONFIG_UPDATE_STATE_UNSPECIFIED = 0;
|
|
113
|
+
// Update to the RoutingConfig is currently in progress.
|
|
114
|
+
ROUTING_CONFIG_UPDATE_STATE_IN_PROGRESS = 1;
|
|
115
|
+
// Update to the RoutingConfig has completed successfully.
|
|
116
|
+
ROUTING_CONFIG_UPDATE_STATE_COMPLETED = 2;
|
|
117
|
+
}
|
|
@@ -23,11 +23,13 @@ enum WorkflowIdReusePolicy {
|
|
|
23
23
|
// Do not permit re-use of the workflow id for this workflow. Future start workflow requests
|
|
24
24
|
// could potentially change the policy, allowing re-use of the workflow id.
|
|
25
25
|
WORKFLOW_ID_REUSE_POLICY_REJECT_DUPLICATE = 3;
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
|
|
26
|
+
// Terminate the current Workflow if one is already running; otherwise allow reusing the
|
|
27
|
+
// Workflow ID. When using this option, `WorkflowIdConflictPolicy` must be left unspecified.
|
|
28
|
+
//
|
|
29
|
+
// Deprecated. Instead, set `WorkflowIdReusePolicy` to `ALLOW_DUPLICATE` and
|
|
30
|
+
// `WorkflowIdConflictPolicy` to `TERMINATE_EXISTING`. Note that `WorkflowIdConflictPolicy`
|
|
31
|
+
// requires Temporal Server v1.24.0 or later.
|
|
32
|
+
WORKFLOW_ID_REUSE_POLICY_TERMINATE_IF_RUNNING = 4 [deprecated = true];
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
// Defines what to do when trying to start a workflow with the same workflow id as a *running* workflow.
|
|
@@ -77,6 +79,7 @@ enum WorkflowExecutionStatus {
|
|
|
77
79
|
WORKFLOW_EXECUTION_STATUS_TERMINATED = 5;
|
|
78
80
|
WORKFLOW_EXECUTION_STATUS_CONTINUED_AS_NEW = 6;
|
|
79
81
|
WORKFLOW_EXECUTION_STATUS_TIMED_OUT = 7;
|
|
82
|
+
WORKFLOW_EXECUTION_STATUS_PAUSED = 8;
|
|
80
83
|
}
|
|
81
84
|
|
|
82
85
|
enum PendingActivityState {
|
|
@@ -133,9 +136,15 @@ enum VersioningBehavior {
|
|
|
133
136
|
// User needs to use Patching to keep the new code compatible with prior versions when dealing
|
|
134
137
|
// with Unversioned workflows.
|
|
135
138
|
VERSIONING_BEHAVIOR_UNSPECIFIED = 0;
|
|
136
|
-
// Workflow will start on
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
+
// Workflow will start on its Target Version and then will be pinned to that same Deployment
|
|
140
|
+
// Version until completion (the Version that this Workflow is pinned to is specified in
|
|
141
|
+
// `versioning_info.version` and is the Pinned Version of the Workflow).
|
|
142
|
+
//
|
|
143
|
+
// The workflow's Target Version is the Current Version of its Task Queue, or, if the
|
|
144
|
+
// Task Queue has a Ramping Version with non-zero Ramp Percentage `P`, the workflow's Target
|
|
145
|
+
// Version has a P% chance of being the Ramping Version. Whether a workflow falls into the
|
|
146
|
+
// Ramping group depends on its Workflow ID and and the Ramp Percentage.
|
|
147
|
+
//
|
|
139
148
|
// This behavior eliminates most of compatibility concerns users face when changing their code.
|
|
140
149
|
// Patching is not needed when pinned workflows code change.
|
|
141
150
|
// Can be overridden explicitly via `UpdateWorkflowExecutionOptions` API to move the
|
|
@@ -145,8 +154,13 @@ enum VersioningBehavior {
|
|
|
145
154
|
// Version, in which case the activity will be sent to the Current Deployment Version of its own
|
|
146
155
|
// task queue.
|
|
147
156
|
VERSIONING_BEHAVIOR_PINNED = 1;
|
|
148
|
-
// Workflow will automatically move to
|
|
149
|
-
//
|
|
157
|
+
// Workflow will automatically move to its Target Version when the next workflow task is dispatched.
|
|
158
|
+
//
|
|
159
|
+
// The workflow's Target Version is the Current Version of its Task Queue, or, if the
|
|
160
|
+
// Task Queue has a Ramping Version with non-zero Ramp Percentage `P`, the workflow's Target
|
|
161
|
+
// Version has a P% chance of being the Ramping Version. Whether a workflow falls into the
|
|
162
|
+
// Ramping group depends on its Workflow ID and and the Ramp Percentage.
|
|
163
|
+
//
|
|
150
164
|
// AutoUpgrade behavior is suitable for long-running workflows as it allows them to move to the
|
|
151
165
|
// latest Deployment Version, but the user still needs to use Patching to keep the new code
|
|
152
166
|
// compatible with prior versions for changed workflow types.
|
|
@@ -154,10 +168,43 @@ enum VersioningBehavior {
|
|
|
154
168
|
// execution (as specified in versioning_info.version based on the last completed
|
|
155
169
|
// workflow task). Exception to this would be when the activity Task Queue workers are not
|
|
156
170
|
// present in the workflow's Deployment Version, in which case, the activity will be sent to a
|
|
157
|
-
// different Deployment Version according to the Current Deployment Version of its own
|
|
158
|
-
//
|
|
159
|
-
// Workflows stuck on a backlogged activity will still auto-upgrade if
|
|
160
|
-
//
|
|
161
|
-
// complete on the old Version.
|
|
171
|
+
// different Deployment Version according to the Current or Ramping Deployment Version of its own
|
|
172
|
+
// Task Queue.
|
|
173
|
+
// Workflows stuck on a backlogged activity will still auto-upgrade if their Target Version
|
|
174
|
+
// changes, without having to wait for the backlogged activity to complete on the old Version.
|
|
162
175
|
VERSIONING_BEHAVIOR_AUTO_UPGRADE = 2;
|
|
163
176
|
}
|
|
177
|
+
|
|
178
|
+
// Experimental. Defines the versioning behavior to be used by the first task of a new workflow run in a continue-as-new chain.
|
|
179
|
+
enum ContinueAsNewVersioningBehavior {
|
|
180
|
+
CONTINUE_AS_NEW_VERSIONING_BEHAVIOR_UNSPECIFIED = 0;
|
|
181
|
+
|
|
182
|
+
// Start the new run with AutoUpgrade behavior. Use the Target Version of the workflow's task queue at
|
|
183
|
+
// start-time, as AutoUpgrade workflows do. After the first workflow task completes, use whatever
|
|
184
|
+
// Versioning Behavior the workflow is annotated with in the workflow code.
|
|
185
|
+
//
|
|
186
|
+
// Note that if the previous workflow had a Pinned override, that override will be inherited by the
|
|
187
|
+
// new workflow run regardless of the ContinueAsNewVersioningBehavior specified in the continue-as-new
|
|
188
|
+
// command. If a Pinned override is inherited by the new run, and the new run starts with AutoUpgrade
|
|
189
|
+
// behavior, the base version of the new run will be the Target Version as described above, but the
|
|
190
|
+
// effective version will be whatever is specified by the Versioning Override until the override is removed.
|
|
191
|
+
CONTINUE_AS_NEW_VERSIONING_BEHAVIOR_AUTO_UPGRADE = 1;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// SuggestContinueAsNewReason specifies why SuggestContinueAsNew is true.
|
|
195
|
+
enum SuggestContinueAsNewReason {
|
|
196
|
+
SUGGEST_CONTINUE_AS_NEW_REASON_UNSPECIFIED = 0;
|
|
197
|
+
|
|
198
|
+
// Workflow History size is getting too large.
|
|
199
|
+
SUGGEST_CONTINUE_AS_NEW_REASON_HISTORY_SIZE_TOO_LARGE = 1;
|
|
200
|
+
|
|
201
|
+
// Workflow History event count is getting too large.
|
|
202
|
+
SUGGEST_CONTINUE_AS_NEW_REASON_TOO_MANY_HISTORY_EVENTS = 2;
|
|
203
|
+
|
|
204
|
+
// Workflow's count of completed plus in-flight updates is too large.
|
|
205
|
+
SUGGEST_CONTINUE_AS_NEW_REASON_TOO_MANY_UPDATES = 3;
|
|
206
|
+
|
|
207
|
+
// Workflow's Target Worker Deployment Version is different from its
|
|
208
|
+
// Current Version and the workflow is versioned.
|
|
209
|
+
SUGGEST_CONTINUE_AS_NEW_REASON_TARGET_WORKER_DEPLOYMENT_VERSION_CHANGED = 4;
|
|
210
|
+
}
|
package/sdk-core/crates/common/protos/api_upstream/temporal/api/errordetails/v1/message.proto
CHANGED
|
@@ -121,3 +121,11 @@ message MultiOperationExecutionFailure {
|
|
|
121
121
|
repeated google.protobuf.Any details = 3;
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
+
|
|
125
|
+
// An error indicating that an activity execution failed to start. Returned when there is an existing activity with the
|
|
126
|
+
// given activity ID, and the given ID reuse and conflict policies do not permit starting a new one or attaching to an
|
|
127
|
+
// existing one.
|
|
128
|
+
message ActivityExecutionAlreadyStartedFailure {
|
|
129
|
+
string start_request_id = 1;
|
|
130
|
+
string run_id = 2;
|
|
131
|
+
}
|