@temporalio/core-bridge 1.9.2 → 1.10.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 +754 -473
- package/Cargo.toml +3 -3
- package/lib/index.d.ts +33 -2
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- 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/scripts/build.js +4 -3
- package/sdk-core/.cargo/config.toml +2 -4
- package/sdk-core/.github/workflows/heavy.yml +1 -1
- package/sdk-core/.github/workflows/per-pr.yml +6 -4
- package/sdk-core/Cargo.toml +10 -3
- package/sdk-core/README.md +4 -6
- package/sdk-core/client/Cargo.toml +13 -5
- package/sdk-core/client/src/lib.rs +123 -34
- package/sdk-core/client/src/metrics.rs +70 -18
- package/sdk-core/client/src/proxy.rs +85 -0
- package/sdk-core/client/src/raw.rs +67 -5
- package/sdk-core/client/src/worker_registry/mod.rs +5 -3
- package/sdk-core/client/src/workflow_handle/mod.rs +3 -1
- package/sdk-core/core/Cargo.toml +31 -37
- package/sdk-core/core/src/abstractions/take_cell.rs +3 -3
- package/sdk-core/core/src/abstractions.rs +176 -108
- package/sdk-core/core/src/core_tests/activity_tasks.rs +4 -13
- package/sdk-core/core/src/core_tests/determinism.rs +2 -1
- package/sdk-core/core/src/core_tests/local_activities.rs +3 -3
- package/sdk-core/core/src/core_tests/mod.rs +3 -3
- package/sdk-core/core/src/core_tests/queries.rs +42 -5
- package/sdk-core/core/src/core_tests/workers.rs +2 -3
- package/sdk-core/core/src/core_tests/workflow_tasks.rs +115 -15
- package/sdk-core/core/src/ephemeral_server/mod.rs +109 -136
- package/sdk-core/core/src/internal_flags.rs +8 -8
- package/sdk-core/core/src/lib.rs +16 -11
- package/sdk-core/core/src/pollers/mod.rs +11 -5
- package/sdk-core/core/src/pollers/poll_buffer.rs +48 -29
- package/sdk-core/core/src/protosext/mod.rs +32 -32
- package/sdk-core/core/src/protosext/protocol_messages.rs +14 -24
- package/sdk-core/core/src/retry_logic.rs +2 -2
- package/sdk-core/core/src/telemetry/log_export.rs +10 -9
- package/sdk-core/core/src/telemetry/metrics.rs +233 -330
- package/sdk-core/core/src/telemetry/mod.rs +11 -38
- package/sdk-core/core/src/telemetry/otel.rs +355 -0
- package/sdk-core/core/src/telemetry/prometheus_server.rs +36 -23
- package/sdk-core/core/src/test_help/mod.rs +80 -59
- package/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +6 -6
- package/sdk-core/core/src/worker/activities/local_activities.rs +46 -43
- package/sdk-core/core/src/worker/activities.rs +45 -46
- package/sdk-core/core/src/worker/client/mocks.rs +8 -7
- package/sdk-core/core/src/worker/client.rs +40 -39
- package/sdk-core/core/src/worker/mod.rs +72 -42
- package/sdk-core/core/src/worker/slot_provider.rs +28 -28
- package/sdk-core/core/src/worker/slot_supplier.rs +1 -0
- package/sdk-core/core/src/worker/tuner/fixed_size.rs +52 -0
- package/sdk-core/core/src/worker/tuner/resource_based.rs +561 -0
- package/sdk-core/core/src/worker/tuner.rs +122 -0
- package/sdk-core/core/src/worker/workflow/driven_workflow.rs +6 -6
- package/sdk-core/core/src/worker/workflow/history_update.rs +27 -53
- package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +4 -17
- package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +1 -10
- package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +4 -11
- package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +17 -35
- package/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -8
- package/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +1 -5
- package/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -5
- package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -5
- package/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -14
- package/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -5
- package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -5
- package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +1 -10
- package/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +3 -10
- package/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +12 -8
- package/sdk-core/core/src/worker/workflow/machines/update_state_machine.rs +0 -10
- package/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +6 -13
- package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +27 -37
- package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +3 -14
- package/sdk-core/core/src/worker/workflow/managed_run.rs +84 -54
- package/sdk-core/core/src/worker/workflow/mod.rs +63 -160
- package/sdk-core/core/src/worker/workflow/run_cache.rs +22 -13
- package/sdk-core/core/src/worker/workflow/wft_extraction.rs +16 -3
- package/sdk-core/core/src/worker/workflow/wft_poller.rs +15 -12
- package/sdk-core/core/src/worker/workflow/workflow_stream.rs +39 -78
- package/sdk-core/core-api/Cargo.toml +6 -5
- package/sdk-core/core-api/src/errors.rs +8 -0
- package/sdk-core/core-api/src/telemetry/metrics.rs +75 -4
- package/sdk-core/core-api/src/telemetry.rs +7 -1
- package/sdk-core/core-api/src/worker.rs +212 -56
- package/sdk-core/fsm/Cargo.toml +3 -0
- package/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +1 -1
- package/sdk-core/sdk/Cargo.toml +5 -7
- package/sdk-core/sdk/src/app_data.rs +3 -3
- package/sdk-core/sdk/src/lib.rs +5 -3
- package/sdk-core/sdk/src/workflow_context/options.rs +1 -1
- package/sdk-core/sdk/src/workflow_context.rs +10 -9
- package/sdk-core/sdk/src/workflow_future.rs +1 -1
- package/sdk-core/sdk-core-protos/Cargo.toml +8 -6
- package/sdk-core/sdk-core-protos/build.rs +1 -10
- package/sdk-core/sdk-core-protos/protos/api_upstream/.github/PULL_REQUEST_TEMPLATE.md +3 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/.github/workflows/ci.yml +26 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/Makefile +42 -20
- package/sdk-core/sdk-core-protos/protos/api_upstream/README.md +2 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/api-linter.yaml +36 -26
- package/sdk-core/sdk-core-protos/protos/api_upstream/buf.lock +2 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/google/protobuf/struct.proto +95 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv2.json +9632 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/openapiv3.yaml +7337 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/openapi/payload_description.txt +2 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/command/v1/message.proto +45 -11
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/common/v1/message.proto +22 -4
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/command_type.proto +2 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/common.proto +44 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/event_type.proto +18 -3
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +20 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +30 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/update.proto +7 -8
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/enums/v1/workflow.proto +23 -5
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/errordetails/v1/message.proto +20 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/failure/v1/message.proto +25 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/history/v1/message.proto +141 -15
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/namespace/v1/message.proto +12 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/nexus/v1/message.proto +193 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +73 -6
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +46 -4
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/schedule/v1/message.proto +4 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/workflow_metadata.proto +2 -2
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +116 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflow/v1/message.proto +134 -0
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +274 -29
- package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +57 -1
- package/sdk-core/sdk-core-protos/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +10 -12
- package/sdk-core/sdk-core-protos/src/history_builder.rs +1 -1
- package/sdk-core/sdk-core-protos/src/lib.rs +54 -51
- package/sdk-core/sdk-core-protos/src/task_token.rs +11 -2
- package/sdk-core/test-utils/Cargo.toml +7 -4
- package/sdk-core/test-utils/src/histfetch.rs +1 -1
- package/sdk-core/test-utils/src/lib.rs +44 -62
- package/sdk-core/tests/fuzzy_workflow.rs +5 -2
- package/sdk-core/tests/heavy_tests.rs +114 -17
- package/sdk-core/tests/integ_tests/activity_functions.rs +1 -1
- package/sdk-core/tests/integ_tests/client_tests.rs +2 -2
- package/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +38 -26
- package/sdk-core/tests/integ_tests/metrics_tests.rs +126 -17
- package/sdk-core/tests/integ_tests/polling_tests.rs +118 -2
- package/sdk-core/tests/integ_tests/update_tests.rs +3 -5
- package/sdk-core/tests/integ_tests/visibility_tests.rs +3 -3
- package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +3 -3
- package/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +5 -4
- package/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -2
- package/sdk-core/tests/integ_tests/workflow_tests/eager.rs +6 -10
- package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +9 -7
- package/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/patches.rs +14 -9
- package/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/signals.rs +6 -13
- package/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +9 -6
- package/sdk-core/tests/integ_tests/workflow_tests/timers.rs +5 -5
- package/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests.rs +115 -11
- package/sdk-core/tests/main.rs +2 -2
- package/src/conversions.rs +57 -0
- package/src/lib.rs +1 -0
- package/src/runtime.rs +51 -35
- package/ts/index.ts +67 -3
- package/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
- package/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
- package/sdk-core/sdk/src/payload_converter.rs +0 -11
- package/sdk-core/sdk-core-protos/protos/api_upstream/.buildkite/Dockerfile +0 -2
- package/sdk-core/sdk-core-protos/protos/api_upstream/.buildkite/docker-compose.yml +0 -15
- package/sdk-core/sdk-core-protos/protos/api_upstream/.buildkite/pipeline.yml +0 -10
- package/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
- package/sdk-core/tests/wf_input_replay.rs +0 -32
|
@@ -103,7 +103,31 @@ message WorkflowExecutionStartedEventAttributes {
|
|
|
103
103
|
string workflow_id = 28;
|
|
104
104
|
// If this workflow intends to use anything other than the current overall default version for
|
|
105
105
|
// the queue, then we include it here.
|
|
106
|
+
// Deprecated. use `inherited_build_id` instead
|
|
106
107
|
temporal.api.common.v1.WorkerVersionStamp source_version_stamp = 29;
|
|
108
|
+
// Completion callbacks attached when this workflow was started.
|
|
109
|
+
repeated temporal.api.common.v1.Callback completion_callbacks = 30;
|
|
110
|
+
|
|
111
|
+
// Contains information about the root workflow execution.
|
|
112
|
+
// The root workflow execution is defined as follows:
|
|
113
|
+
// 1. A workflow without parent workflow is its own root workflow.
|
|
114
|
+
// 2. A workflow that has a parent workflow has the same root workflow as its parent workflow.
|
|
115
|
+
// Note: workflows continued as new or reseted may or may not have parents, check examples below.
|
|
116
|
+
//
|
|
117
|
+
// Examples:
|
|
118
|
+
// Scenario 1: Workflow W1 starts child workflow W2, and W2 starts child workflow W3.
|
|
119
|
+
// - The root workflow of all three workflows is W1.
|
|
120
|
+
// Scenario 2: Workflow W1 starts child workflow W2, and W2 continued as new W3.
|
|
121
|
+
// - The root workflow of all three workflows is W1.
|
|
122
|
+
// Scenario 3: Workflow W1 continued as new W2.
|
|
123
|
+
// - The root workflow of W1 is W1 and the root workflow of W2 is W2.
|
|
124
|
+
// Scenario 4: Workflow W1 starts child workflow W2, and W2 is reseted, creating W3
|
|
125
|
+
// - The root workflow of all three workflows is W1.
|
|
126
|
+
// Scenario 5: Workflow W1 is reseted, creating W2.
|
|
127
|
+
// - The root workflow of W1 is W1 and the root workflow of W2 is W2.
|
|
128
|
+
temporal.api.common.v1.WorkflowExecution root_workflow_execution = 31;
|
|
129
|
+
// When present, this execution is assigned to the build ID of its parent or previous execution.
|
|
130
|
+
string inherited_build_id = 32;
|
|
107
131
|
}
|
|
108
132
|
|
|
109
133
|
message WorkflowExecutionCompletedEventAttributes {
|
|
@@ -156,9 +180,9 @@ message WorkflowExecutionContinuedAsNewEventAttributes {
|
|
|
156
180
|
temporal.api.common.v1.Header header = 12;
|
|
157
181
|
temporal.api.common.v1.Memo memo = 13;
|
|
158
182
|
temporal.api.common.v1.SearchAttributes search_attributes = 14;
|
|
159
|
-
// If this is set, the
|
|
160
|
-
//
|
|
161
|
-
bool
|
|
183
|
+
// If this is set, the new execution inherits the Build ID of the current execution. Otherwise,
|
|
184
|
+
// the assignment rules will be used to independently assign a Build ID to the new execution.
|
|
185
|
+
bool inherit_build_id = 15;
|
|
162
186
|
|
|
163
187
|
// workflow_execution_timeout is omitted as it shouldn't be overridden from within a workflow.
|
|
164
188
|
}
|
|
@@ -189,6 +213,11 @@ message WorkflowTaskStartedEventAttributes {
|
|
|
189
213
|
// continue-as-new regardless of the suggestion. Note that history event count is
|
|
190
214
|
// just the event id of this event, so we don't include it explicitly here.
|
|
191
215
|
int64 history_size_bytes = 5;
|
|
216
|
+
// Version info of the worker to whom this task was dispatched.
|
|
217
|
+
temporal.api.common.v1.WorkerVersionStamp worker_version = 6;
|
|
218
|
+
// Used by server internally to properly reapply build ID redirects to an execution
|
|
219
|
+
// when rebuilding it from events.
|
|
220
|
+
int64 build_id_redirect_counter = 7;
|
|
192
221
|
}
|
|
193
222
|
|
|
194
223
|
message WorkflowTaskCompletedEventAttributes {
|
|
@@ -203,6 +232,7 @@ message WorkflowTaskCompletedEventAttributes {
|
|
|
203
232
|
// Version info of the worker who processed this workflow task. If present, the `build_id` field
|
|
204
233
|
// within is also used as `binary_checksum`, which may be omitted in that case (it may also be
|
|
205
234
|
// populated to preserve compatibility).
|
|
235
|
+
// Deprecated. Use the info inside the corresponding WorkflowTaskStartedEvent
|
|
206
236
|
temporal.api.common.v1.WorkerVersionStamp worker_version = 5;
|
|
207
237
|
// Data the SDK wishes to record for itself, but server need not interpret, and does not
|
|
208
238
|
// directly impact workflow state.
|
|
@@ -242,6 +272,7 @@ message WorkflowTaskFailedEventAttributes {
|
|
|
242
272
|
// Version info of the worker who processed this workflow task. If present, the `build_id` field
|
|
243
273
|
// within is also used as `binary_checksum`, which may be omitted in that case (it may also be
|
|
244
274
|
// populated to preserve compatibility).
|
|
275
|
+
// Deprecated. Use the info inside the corresponding WorkflowTaskStartedEvent
|
|
245
276
|
temporal.api.common.v1.WorkerVersionStamp worker_version = 10;
|
|
246
277
|
}
|
|
247
278
|
|
|
@@ -283,10 +314,9 @@ message ActivityTaskScheduledEventAttributes {
|
|
|
283
314
|
// configuration. Retries will happen up to `schedule_to_close_timeout`. To disable retries set
|
|
284
315
|
// retry_policy.maximum_attempts to 1.
|
|
285
316
|
temporal.api.common.v1.RetryPolicy retry_policy = 12;
|
|
286
|
-
// If this is set, the
|
|
287
|
-
//
|
|
288
|
-
|
|
289
|
-
bool use_compatible_version = 13;
|
|
317
|
+
// If this is set, the activity would be assigned to the Build ID of the workflow. Otherwise,
|
|
318
|
+
// Assignment rules of the activity's Task Queue will be used to determine the Build ID.
|
|
319
|
+
bool use_workflow_build_id = 13;
|
|
290
320
|
}
|
|
291
321
|
|
|
292
322
|
message ActivityTaskStartedEventAttributes {
|
|
@@ -301,6 +331,11 @@ message ActivityTaskStartedEventAttributes {
|
|
|
301
331
|
// Will be set to the most recent failure details, if this task has previously failed and then
|
|
302
332
|
// been retried.
|
|
303
333
|
temporal.api.failure.v1.Failure last_failure = 5;
|
|
334
|
+
// Version info of the worker to whom this task was dispatched.
|
|
335
|
+
temporal.api.common.v1.WorkerVersionStamp worker_version = 6;
|
|
336
|
+
// Used by server internally to properly reapply build ID redirects to an execution
|
|
337
|
+
// when rebuilding it from events.
|
|
338
|
+
int64 build_id_redirect_counter = 7;
|
|
304
339
|
}
|
|
305
340
|
|
|
306
341
|
message ActivityTaskCompletedEventAttributes {
|
|
@@ -313,6 +348,7 @@ message ActivityTaskCompletedEventAttributes {
|
|
|
313
348
|
// id of the worker that completed this task
|
|
314
349
|
string identity = 4;
|
|
315
350
|
// Version info of the worker who processed this workflow task.
|
|
351
|
+
// Deprecated. Use the info inside the corresponding ActivityTaskStartedEvent
|
|
316
352
|
temporal.api.common.v1.WorkerVersionStamp worker_version = 5;
|
|
317
353
|
}
|
|
318
354
|
|
|
@@ -327,6 +363,7 @@ message ActivityTaskFailedEventAttributes {
|
|
|
327
363
|
string identity = 4;
|
|
328
364
|
temporal.api.enums.v1.RetryState retry_state = 5;
|
|
329
365
|
// Version info of the worker who processed this workflow task.
|
|
366
|
+
// Deprecated. Use the info inside the corresponding ActivityTaskStartedEvent
|
|
330
367
|
temporal.api.common.v1.WorkerVersionStamp worker_version = 6;
|
|
331
368
|
}
|
|
332
369
|
|
|
@@ -361,6 +398,7 @@ message ActivityTaskCanceledEventAttributes {
|
|
|
361
398
|
// id of the worker who canceled this activity
|
|
362
399
|
string identity = 5;
|
|
363
400
|
// Version info of the worker who processed this workflow task.
|
|
401
|
+
// Deprecated. Use the info inside the corresponding ActivityTaskStartedEvent
|
|
364
402
|
temporal.api.common.v1.WorkerVersionStamp worker_version = 6;
|
|
365
403
|
}
|
|
366
404
|
|
|
@@ -581,10 +619,9 @@ message StartChildWorkflowExecutionInitiatedEventAttributes {
|
|
|
581
619
|
temporal.api.common.v1.Header header = 15;
|
|
582
620
|
temporal.api.common.v1.Memo memo = 16;
|
|
583
621
|
temporal.api.common.v1.SearchAttributes search_attributes = 17;
|
|
584
|
-
// If this is set, the workflow
|
|
585
|
-
//
|
|
586
|
-
|
|
587
|
-
bool use_compatible_version = 19;
|
|
622
|
+
// If this is set, the child workflow inherits the Build ID of the parent. Otherwise, the assignment
|
|
623
|
+
// rules of the child's Task Queue will be used to independently assign a Build ID to it.
|
|
624
|
+
bool inherit_build_id = 19;
|
|
588
625
|
}
|
|
589
626
|
|
|
590
627
|
message StartChildWorkflowExecutionFailedEventAttributes {
|
|
@@ -750,11 +787,93 @@ message WorkflowExecutionUpdateRejectedEventAttributes {
|
|
|
750
787
|
temporal.api.failure.v1.Failure failure = 5;
|
|
751
788
|
}
|
|
752
789
|
|
|
753
|
-
message
|
|
790
|
+
message WorkflowExecutionUpdateAdmittedEventAttributes {
|
|
754
791
|
// The update request associated with this event.
|
|
755
792
|
temporal.api.update.v1.Request request = 1;
|
|
756
|
-
//
|
|
757
|
-
temporal.api.enums.v1.
|
|
793
|
+
// An explanation of why this event was written to history.
|
|
794
|
+
temporal.api.enums.v1.UpdateAdmittedEventOrigin origin = 2;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
// Event marking that an operation was scheduled by a workflow via the ScheduleNexusOperation command.
|
|
798
|
+
message NexusOperationScheduledEventAttributes {
|
|
799
|
+
// Endpoint name, must exist in the endpoint registry.
|
|
800
|
+
string endpoint = 1;
|
|
801
|
+
// Service name.
|
|
802
|
+
string service = 2;
|
|
803
|
+
// Operation name.
|
|
804
|
+
string operation = 3;
|
|
805
|
+
// Input for the operation. The server converts this into Nexus request content and the appropriate content headers
|
|
806
|
+
// internally when sending the StartOperation request. On the handler side, if it is also backed by Temporal, the
|
|
807
|
+
// content is transformed back to the original Payload stored in this event.
|
|
808
|
+
temporal.api.common.v1.Payload input = 4;
|
|
809
|
+
// Schedule-to-close timeout for this operation.
|
|
810
|
+
// Indicates how long the caller is willing to wait for operation completion.
|
|
811
|
+
// Calls are retried internally by the server.
|
|
812
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
813
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
814
|
+
google.protobuf.Duration schedule_to_close_timeout = 5;
|
|
815
|
+
// Header to attach to the Nexus request. Note these headers are not the same as Temporal headers on internal
|
|
816
|
+
// activities and child workflows, these are transmitted to Nexus operations that may be external and are not
|
|
817
|
+
// traditional payloads.
|
|
818
|
+
map<string, string> nexus_header = 6;
|
|
819
|
+
// The `WORKFLOW_TASK_COMPLETED` event that the corresponding ScheduleNexusOperation command was reported with.
|
|
820
|
+
int64 workflow_task_completed_event_id = 7;
|
|
821
|
+
// A unique ID generated by the history service upon creation of this event.
|
|
822
|
+
// The ID will be transmitted with all nexus StartOperation requests and is used as an idempotentency key.
|
|
823
|
+
string request_id = 8;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
// Event marking an asynchronous operation was started by the responding Nexus handler.
|
|
827
|
+
// If the operation completes synchronously, this event is not generated.
|
|
828
|
+
// In rare situations, such as request timeouts, the service may fail to record the actual start time and will fabricate
|
|
829
|
+
// this event upon receiving the operation completion via callback.
|
|
830
|
+
message NexusOperationStartedEventAttributes {
|
|
831
|
+
// The ID of the `NEXUS_OPERATION_SCHEDULED` event this task corresponds to.
|
|
832
|
+
int64 scheduled_event_id = 1;
|
|
833
|
+
// The operation ID returned by the Nexus handler in the response to the StartOperation request.
|
|
834
|
+
// This ID is used when canceling the operation.
|
|
835
|
+
string operation_id = 3;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
// Nexus operation completed successfully.
|
|
839
|
+
message NexusOperationCompletedEventAttributes {
|
|
840
|
+
// The ID of the `NEXUS_OPERATION_SCHEDULED` event. Uniquely identifies this operation.
|
|
841
|
+
int64 scheduled_event_id = 1;
|
|
842
|
+
// Serialized result of the Nexus operation. The response of the Nexus handler.
|
|
843
|
+
// Delivered either via a completion callback or as a response to a synchronous operation.
|
|
844
|
+
temporal.api.common.v1.Payload result = 2;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
// Nexus operation failed.
|
|
848
|
+
message NexusOperationFailedEventAttributes {
|
|
849
|
+
// The ID of the `NEXUS_OPERATION_SCHEDULED` event. Uniquely identifies this operation.
|
|
850
|
+
int64 scheduled_event_id = 1;
|
|
851
|
+
// Failure details. A NexusOperationFailureInfo wrapping an ApplicationFailureInfo.
|
|
852
|
+
temporal.api.failure.v1.Failure failure = 2;
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
// Nexus operation timed out.
|
|
856
|
+
message NexusOperationTimedOutEventAttributes {
|
|
857
|
+
// The ID of the `NEXUS_OPERATION_SCHEDULED` event. Uniquely identifies this operation.
|
|
858
|
+
int64 scheduled_event_id = 1;
|
|
859
|
+
// Failure details. A NexusOperationFailureInfo wrapping a CanceledFailureInfo.
|
|
860
|
+
temporal.api.failure.v1.Failure failure = 2;
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
// Nexus operation completed as canceled. May or may not have been due to a cancellation request by the workflow.
|
|
864
|
+
message NexusOperationCanceledEventAttributes {
|
|
865
|
+
// The ID of the `NEXUS_OPERATION_SCHEDULED` event. Uniquely identifies this operation.
|
|
866
|
+
int64 scheduled_event_id = 1;
|
|
867
|
+
// Cancellation details.
|
|
868
|
+
temporal.api.failure.v1.Failure failure = 2;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
message NexusOperationCancelRequestedEventAttributes {
|
|
872
|
+
// The id of the `NEXUS_OPERATION_SCHEDULED` event this cancel request corresponds to.
|
|
873
|
+
int64 scheduled_event_id = 1;
|
|
874
|
+
// The `WORKFLOW_TASK_COMPLETED` event that the corresponding RequestCancelNexusOperation command was reported
|
|
875
|
+
// with.
|
|
876
|
+
int64 workflow_task_completed_event_id = 2;
|
|
758
877
|
}
|
|
759
878
|
|
|
760
879
|
// History events are the method by which Temporal SDKs advance (or recreate) workflow state.
|
|
@@ -821,7 +940,14 @@ message HistoryEvent {
|
|
|
821
940
|
WorkflowPropertiesModifiedExternallyEventAttributes workflow_properties_modified_externally_event_attributes = 49;
|
|
822
941
|
ActivityPropertiesModifiedExternallyEventAttributes activity_properties_modified_externally_event_attributes = 50;
|
|
823
942
|
WorkflowPropertiesModifiedEventAttributes workflow_properties_modified_event_attributes = 51;
|
|
824
|
-
|
|
943
|
+
WorkflowExecutionUpdateAdmittedEventAttributes workflow_execution_update_admitted_event_attributes = 52;
|
|
944
|
+
NexusOperationScheduledEventAttributes nexus_operation_scheduled_event_attributes = 53;
|
|
945
|
+
NexusOperationStartedEventAttributes nexus_operation_started_event_attributes = 54;
|
|
946
|
+
NexusOperationCompletedEventAttributes nexus_operation_completed_event_attributes = 55;
|
|
947
|
+
NexusOperationFailedEventAttributes nexus_operation_failed_event_attributes = 56;
|
|
948
|
+
NexusOperationCanceledEventAttributes nexus_operation_canceled_event_attributes = 57;
|
|
949
|
+
NexusOperationTimedOutEventAttributes nexus_operation_timed_out_event_attributes = 58;
|
|
950
|
+
NexusOperationCancelRequestedEventAttributes nexus_operation_cancel_requested_event_attributes = 59;
|
|
825
951
|
}
|
|
826
952
|
}
|
|
827
953
|
|
package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/namespace/v1/message.proto
CHANGED
|
@@ -45,6 +45,18 @@ message NamespaceInfo {
|
|
|
45
45
|
// A key-value map for any customized purpose.
|
|
46
46
|
map<string, string> data = 5;
|
|
47
47
|
string id = 6;
|
|
48
|
+
// All capabilities the namespace supports.
|
|
49
|
+
Capabilities capabilities = 7;
|
|
50
|
+
|
|
51
|
+
// Namespace capability details. Should contain what features are enabled in a namespace.
|
|
52
|
+
message Capabilities {
|
|
53
|
+
// True if the namespace supports eager workflow start.
|
|
54
|
+
bool eager_workflow_start = 1;
|
|
55
|
+
// True if the namespace supports sync update
|
|
56
|
+
bool sync_update = 2;
|
|
57
|
+
// True if the namespace supports async update
|
|
58
|
+
bool async_update = 3;
|
|
59
|
+
}
|
|
48
60
|
|
|
49
61
|
// Whether scheduled workflows are supported on this namespace. This is only needed
|
|
50
62
|
// temporarily while the feature is experimental, so we can give it a high tag.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
// The MIT License
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2023 Temporal Technologies Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
// furnished to do so, subject to the following conditions:
|
|
9
|
+
//
|
|
10
|
+
// The above copyright notice and this permission notice shall be included in
|
|
11
|
+
// all copies or substantial portions of the Software.
|
|
12
|
+
//
|
|
13
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
+
// THE SOFTWARE.
|
|
20
|
+
|
|
21
|
+
syntax = "proto3";
|
|
22
|
+
|
|
23
|
+
package temporal.api.nexus.v1;
|
|
24
|
+
|
|
25
|
+
option go_package = "go.temporal.io/api/nexus/v1;nexus";
|
|
26
|
+
option java_package = "io.temporal.api.nexus.v1";
|
|
27
|
+
option java_multiple_files = true;
|
|
28
|
+
option java_outer_classname = "MessageProto";
|
|
29
|
+
option ruby_package = "Temporalio::Api::Nexus::V1";
|
|
30
|
+
option csharp_namespace = "Temporalio.Api.Nexus.V1";
|
|
31
|
+
|
|
32
|
+
import "google/protobuf/timestamp.proto";
|
|
33
|
+
import "temporal/api/common/v1/message.proto";
|
|
34
|
+
|
|
35
|
+
// A general purpose failure message.
|
|
36
|
+
// See: https://github.com/nexus-rpc/api/blob/main/SPEC.md#failure
|
|
37
|
+
message Failure {
|
|
38
|
+
string message = 1;
|
|
39
|
+
map<string, string> metadata = 2;
|
|
40
|
+
bytes details = 3;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
message HandlerError {
|
|
44
|
+
// See https://github.com/nexus-rpc/api/blob/main/SPEC.md#predefined-handler-errors.
|
|
45
|
+
string error_type = 1;
|
|
46
|
+
Failure failure = 2;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
message UnsuccessfulOperationError {
|
|
50
|
+
// See https://github.com/nexus-rpc/api/blob/main/SPEC.md#operationinfo.
|
|
51
|
+
string operation_state = 1;
|
|
52
|
+
Failure failure = 2;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// A request to start an operation.
|
|
56
|
+
message StartOperationRequest {
|
|
57
|
+
// Name of service to start the operation in.
|
|
58
|
+
string service = 1;
|
|
59
|
+
// Type of operation to start.
|
|
60
|
+
string operation = 2;
|
|
61
|
+
// A request ID that can be used as an idempotentency key.
|
|
62
|
+
string request_id = 3;
|
|
63
|
+
// Callback URL to call upon completion if the started operation is async.
|
|
64
|
+
string callback = 4;
|
|
65
|
+
// Full request body from the incoming HTTP request.
|
|
66
|
+
temporal.api.common.v1.Payload payload = 5;
|
|
67
|
+
// Header that is expected to be attached to the callback request when the operation completes.
|
|
68
|
+
map<string, string> callback_header = 6;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// A request to cancel an operation.
|
|
72
|
+
message CancelOperationRequest {
|
|
73
|
+
// Service name.
|
|
74
|
+
string service = 1;
|
|
75
|
+
// Type of operation to cancel.
|
|
76
|
+
string operation = 2;
|
|
77
|
+
// Operation ID as originally generated by a Handler.
|
|
78
|
+
string operation_id = 3;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// A Nexus request.
|
|
82
|
+
message Request {
|
|
83
|
+
// Headers extracted from the original request in the Temporal frontend.
|
|
84
|
+
// When using Nexus over HTTP, this includes the request's HTTP headers ignoring multiple values.
|
|
85
|
+
map<string, string> header = 1;
|
|
86
|
+
|
|
87
|
+
// The timestamp when the request was scheduled in the frontend.
|
|
88
|
+
// (-- api-linter: core::0142::time-field-names=disabled
|
|
89
|
+
// aip.dev/not-precedent: Not following linter rules. --)
|
|
90
|
+
google.protobuf.Timestamp scheduled_time = 2;
|
|
91
|
+
|
|
92
|
+
oneof variant {
|
|
93
|
+
StartOperationRequest start_operation = 3;
|
|
94
|
+
CancelOperationRequest cancel_operation = 4;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Response variant for StartOperationRequest.
|
|
99
|
+
message StartOperationResponse {
|
|
100
|
+
// An operation completed successfully.
|
|
101
|
+
message Sync {
|
|
102
|
+
temporal.api.common.v1.Payload payload = 1;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// The operation will complete asynchronously.
|
|
106
|
+
// The returned ID can be used to reference this operation.
|
|
107
|
+
message Async {
|
|
108
|
+
string operation_id = 1;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
oneof variant {
|
|
112
|
+
Sync sync_success = 1;
|
|
113
|
+
Async async_success = 2;
|
|
114
|
+
// The operation completed unsuccessfully (failed or canceled).
|
|
115
|
+
UnsuccessfulOperationError operation_error = 3;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Response variant for CancelOperationRequest.
|
|
120
|
+
message CancelOperationResponse {
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// A response indicating that the handler has successfully processed a request.
|
|
124
|
+
message Response {
|
|
125
|
+
// Variant must correlate to the corresponding Request's variant.
|
|
126
|
+
oneof variant {
|
|
127
|
+
StartOperationResponse start_operation = 1;
|
|
128
|
+
CancelOperationResponse cancel_operation = 2;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// A cluster-global binding from an endpoint ID to a target for dispatching incoming Nexus requests.
|
|
133
|
+
message Endpoint {
|
|
134
|
+
// Data version for this endpoint, incremented for every update issued via the UpdateNexusEndpoint API.
|
|
135
|
+
int64 version = 1;
|
|
136
|
+
// Unique server-generated endpoint ID.
|
|
137
|
+
string id = 2;
|
|
138
|
+
// Spec for the endpoint.
|
|
139
|
+
EndpointSpec spec = 3;
|
|
140
|
+
|
|
141
|
+
// The date and time when the endpoint was created.
|
|
142
|
+
// (-- api-linter: core::0142::time-field-names=disabled
|
|
143
|
+
// aip.dev/not-precedent: Not following linter rules. --)
|
|
144
|
+
google.protobuf.Timestamp created_time = 4;
|
|
145
|
+
|
|
146
|
+
// The date and time when the endpoint was last modified.
|
|
147
|
+
// Will not be set if the endpoint has never been modified.
|
|
148
|
+
// (-- api-linter: core::0142::time-field-names=disabled
|
|
149
|
+
// aip.dev/not-precedent: Not following linter rules. --)
|
|
150
|
+
google.protobuf.Timestamp last_modified_time = 5;
|
|
151
|
+
|
|
152
|
+
// Server exposed URL prefix for invocation of operations on this endpoint.
|
|
153
|
+
// This doesn't include the protocol, hostname or port as the server does not know how it should be accessed
|
|
154
|
+
// publicly. The URL is stable in the face of endpoint renames.
|
|
155
|
+
string url_prefix = 6;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Contains mutable fields for an Endpoint.
|
|
159
|
+
message EndpointSpec {
|
|
160
|
+
// Endpoint name, unique for this cluster. Must match `[a-zA-Z_][a-zA-Z0-9_]*`.
|
|
161
|
+
// Renaming an endpoint breaks all workflow callers that reference this endpoint, causing operations to fail.
|
|
162
|
+
string name = 1;
|
|
163
|
+
// Markdown description serialized as a single JSON string.
|
|
164
|
+
// If the Payload is encrypted, the UI and CLI may decrypt with the configured codec server endpoint.
|
|
165
|
+
temporal.api.common.v1.Payload description = 2;
|
|
166
|
+
|
|
167
|
+
// Target to route requests to.
|
|
168
|
+
EndpointTarget target = 3;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Target to route requests to.
|
|
172
|
+
message EndpointTarget {
|
|
173
|
+
// Target a worker polling on a Nexus task queue in a specific namespace.
|
|
174
|
+
message Worker {
|
|
175
|
+
// Namespace to route requests to.
|
|
176
|
+
string namespace = 1;
|
|
177
|
+
// Nexus task queue to route requests to.
|
|
178
|
+
string task_queue = 2;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Target an external server by URL.
|
|
182
|
+
// At a later point, this will support providing credentials, in the meantime, an http.RoundTripper can be injected
|
|
183
|
+
// into the server to modify the request.
|
|
184
|
+
message External {
|
|
185
|
+
// URL to call.
|
|
186
|
+
string url = 1;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
oneof variant {
|
|
190
|
+
Worker worker = 1;
|
|
191
|
+
External external = 2;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
@@ -32,6 +32,8 @@ option ruby_package = "Temporalio::Api::OperatorService::V1";
|
|
|
32
32
|
option csharp_namespace = "Temporalio.Api.OperatorService.V1";
|
|
33
33
|
|
|
34
34
|
import "temporal/api/enums/v1/common.proto";
|
|
35
|
+
import "temporal/api/nexus/v1/message.proto";
|
|
36
|
+
import "google/protobuf/duration.proto";
|
|
35
37
|
|
|
36
38
|
// (-- Search Attribute --)
|
|
37
39
|
|
|
@@ -66,14 +68,13 @@ message ListSearchAttributesResponse {
|
|
|
66
68
|
map<string, string> storage_schema = 3;
|
|
67
69
|
}
|
|
68
70
|
|
|
69
|
-
// (-- api-linter: core::0135::request-unknown-fields=disabled
|
|
70
|
-
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
|
71
|
-
// (-- api-linter: core::0135::request-name-required=disabled
|
|
72
|
-
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
|
73
71
|
message DeleteNamespaceRequest {
|
|
74
72
|
// Only one of namespace or namespace_id must be specified to identify namespace.
|
|
75
73
|
string namespace = 1;
|
|
76
74
|
string namespace_id = 2;
|
|
75
|
+
// If provided, the deletion of namespace info will be delayed for the given duration (0 means no delay).
|
|
76
|
+
// If not provided, the default delay configured in the cluster will be used.
|
|
77
|
+
google.protobuf.Duration namespace_delete_delay = 3;
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
message DeleteNamespaceResponse {
|
|
@@ -82,10 +83,13 @@ message DeleteNamespaceResponse {
|
|
|
82
83
|
}
|
|
83
84
|
|
|
84
85
|
message AddOrUpdateRemoteClusterRequest {
|
|
85
|
-
// Frontend Address is a cross cluster accessible address.
|
|
86
|
+
// Frontend Address is a cross cluster accessible address for gRPC traffic. This field is required.
|
|
86
87
|
string frontend_address = 1;
|
|
87
88
|
// Flag to enable / disable the cross cluster connection.
|
|
88
89
|
bool enable_remote_cluster_connection = 2;
|
|
90
|
+
// Frontend HTTP Address is a cross cluster accessible address for HTTP traffic. This field is optional. If not provided
|
|
91
|
+
// on update, the existing HTTP address will be removed.
|
|
92
|
+
string frontend_http_address = 3;
|
|
89
93
|
}
|
|
90
94
|
|
|
91
95
|
message AddOrUpdateRemoteClusterResponse {
|
|
@@ -115,8 +119,10 @@ message ClusterMetadata {
|
|
|
115
119
|
string cluster_name = 1;
|
|
116
120
|
// Id of the cluster.
|
|
117
121
|
string cluster_id = 2;
|
|
118
|
-
//
|
|
122
|
+
// gRPC address.
|
|
119
123
|
string address = 3;
|
|
124
|
+
// HTTP address, if one exists.
|
|
125
|
+
string http_address = 7;
|
|
120
126
|
// A unique failover version across all connected clusters.
|
|
121
127
|
int64 initial_failover_version = 4;
|
|
122
128
|
// History service shard number.
|
|
@@ -124,3 +130,64 @@ message ClusterMetadata {
|
|
|
124
130
|
// A flag to indicate if a connection is active.
|
|
125
131
|
bool is_connection_enabled = 6;
|
|
126
132
|
}
|
|
133
|
+
|
|
134
|
+
message GetNexusEndpointRequest {
|
|
135
|
+
// Server-generated unique endpoint ID.
|
|
136
|
+
string id = 1;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
message GetNexusEndpointResponse {
|
|
140
|
+
temporal.api.nexus.v1.Endpoint endpoint = 1;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
message CreateNexusEndpointRequest {
|
|
144
|
+
// Endpoint definition to create.
|
|
145
|
+
temporal.api.nexus.v1.EndpointSpec spec = 1;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
message CreateNexusEndpointResponse {
|
|
149
|
+
// Data post acceptance. Can be used to issue additional updates to this record.
|
|
150
|
+
temporal.api.nexus.v1.Endpoint endpoint = 1;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
message UpdateNexusEndpointRequest {
|
|
154
|
+
// Server-generated unique endpoint ID.
|
|
155
|
+
string id = 1;
|
|
156
|
+
// Data version for this endpoint. Must match current version.
|
|
157
|
+
int64 version = 2;
|
|
158
|
+
|
|
159
|
+
temporal.api.nexus.v1.EndpointSpec spec = 3;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
message UpdateNexusEndpointResponse {
|
|
163
|
+
// Data post acceptance. Can be used to issue additional updates to this record.
|
|
164
|
+
temporal.api.nexus.v1.Endpoint endpoint = 1;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
message DeleteNexusEndpointRequest {
|
|
168
|
+
// Server-generated unique endpoint ID.
|
|
169
|
+
string id = 1;
|
|
170
|
+
// Data version for this endpoint. Must match current version.
|
|
171
|
+
int64 version = 2;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
message DeleteNexusEndpointResponse {
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
message ListNexusEndpointsRequest {
|
|
178
|
+
int32 page_size = 1;
|
|
179
|
+
// To get the next page, pass in `ListNexusEndpointsResponse.next_page_token` from the previous page's
|
|
180
|
+
// response, the token will be empty if there's no other page.
|
|
181
|
+
// Note: the last page may be empty if the total number of endpoints registered is a multiple of the page size.
|
|
182
|
+
bytes next_page_token = 2;
|
|
183
|
+
// Name of the incoming endpoint to filter on - optional. Specifying this will result in zero or one results.
|
|
184
|
+
// (-- api-linter: core::203::field-behavior-required=disabled
|
|
185
|
+
// aip.dev/not-precedent: Not following linter rules. --)
|
|
186
|
+
string name = 3;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
message ListNexusEndpointsResponse {
|
|
190
|
+
// Token for getting the next page.
|
|
191
|
+
bytes next_page_token = 1;
|
|
192
|
+
repeated temporal.api.nexus.v1.Endpoint endpoints = 2;
|
|
193
|
+
}
|
package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/operatorservice/v1/service.proto
CHANGED
|
@@ -63,10 +63,6 @@ service OperatorService {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
// DeleteNamespace synchronously deletes a namespace and asynchronously reclaims all namespace resources.
|
|
66
|
-
// (-- api-linter: core::0135::method-signature=disabled
|
|
67
|
-
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
|
68
|
-
// (-- api-linter: core::0135::response-message-name=disabled
|
|
69
|
-
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
|
70
66
|
rpc DeleteNamespace (DeleteNamespaceRequest) returns (DeleteNamespaceResponse) {
|
|
71
67
|
}
|
|
72
68
|
|
|
@@ -81,4 +77,50 @@ service OperatorService {
|
|
|
81
77
|
// ListClusters returns information about Temporal clusters.
|
|
82
78
|
rpc ListClusters(ListClustersRequest) returns (ListClustersResponse) {
|
|
83
79
|
}
|
|
80
|
+
|
|
81
|
+
// Get a registered Nexus endpoint by ID. The returned version can be used for optimistic updates.
|
|
82
|
+
rpc GetNexusEndpoint(GetNexusEndpointRequest) returns (GetNexusEndpointResponse) {
|
|
83
|
+
option (google.api.http) = {
|
|
84
|
+
get: "/api/v1/nexus/endpoints/{id}"
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Create a Nexus endpoint. This will fail if an endpoint with the same name is already registered with a status of
|
|
89
|
+
// ALREADY_EXISTS.
|
|
90
|
+
// Returns the created endpoint with its initial version. You may use this version for subsequent updates.
|
|
91
|
+
rpc CreateNexusEndpoint(CreateNexusEndpointRequest) returns (CreateNexusEndpointResponse) {
|
|
92
|
+
option (google.api.http) = {
|
|
93
|
+
post: "/api/v1/nexus/endpoints"
|
|
94
|
+
body: "*"
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Optimistically update a Nexus endpoint based on provided version as obtained via the `GetNexusEndpoint` or
|
|
99
|
+
// `ListNexusEndpointResponse` APIs. This will fail with a status of FAILED_PRECONDITION if the version does not
|
|
100
|
+
// match.
|
|
101
|
+
// Returns the updated endpoint with its updated version. You may use this version for subsequent updates. You don't
|
|
102
|
+
// need to increment the version yourself. The server will increment the version for you after each update.
|
|
103
|
+
rpc UpdateNexusEndpoint(UpdateNexusEndpointRequest) returns (UpdateNexusEndpointResponse) {
|
|
104
|
+
option (google.api.http) = {
|
|
105
|
+
post: "/api/v1/nexus/endpoints/{id}/update"
|
|
106
|
+
body: "*"
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Delete an incoming Nexus service by ID.
|
|
111
|
+
rpc DeleteNexusEndpoint(DeleteNexusEndpointRequest) returns (DeleteNexusEndpointResponse) {
|
|
112
|
+
option (google.api.http) = {
|
|
113
|
+
delete: "/api/v1/nexus/endpoints/{id}"
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// List all Nexus endpoints for the cluster, sorted by ID in ascending order. Set page_token in the request to the
|
|
118
|
+
// next_page_token field of the previous response to get the next page of results. An empty next_page_token
|
|
119
|
+
// indicates that there are no more results. During pagination, a newly added service with an ID lexicographically
|
|
120
|
+
// earlier than the previous page's last endpoint's ID may be missed.
|
|
121
|
+
rpc ListNexusEndpoints(ListNexusEndpointsRequest) returns (ListNexusEndpointsResponse) {
|
|
122
|
+
option (google.api.http) = {
|
|
123
|
+
get: "/api/v1/nexus/endpoints"
|
|
124
|
+
};
|
|
125
|
+
}
|
|
84
126
|
}
|
|
@@ -243,6 +243,10 @@ message SchedulePolicies {
|
|
|
243
243
|
// This applies after retry policies: the full chain of retries must fail to
|
|
244
244
|
// trigger a pause here.
|
|
245
245
|
bool pause_on_failure = 3;
|
|
246
|
+
|
|
247
|
+
// If true, and the action would start a workflow, a timestamp will not be
|
|
248
|
+
// appended to the scheduled workflow id.
|
|
249
|
+
bool keep_original_workflow_id = 4;
|
|
246
250
|
}
|
|
247
251
|
|
|
248
252
|
message ScheduleAction {
|
package/sdk-core/sdk-core-protos/protos/api_upstream/temporal/api/sdk/v1/workflow_metadata.proto
CHANGED
|
@@ -31,7 +31,7 @@ option java_outer_classname = "WorkflowMetadataProto";
|
|
|
31
31
|
option ruby_package = "Temporalio::Api::Sdk::V1";
|
|
32
32
|
option csharp_namespace = "Temporalio.Api.Sdk.V1";
|
|
33
33
|
|
|
34
|
-
// The name of the query to retrieve this information is `
|
|
34
|
+
// The name of the query to retrieve this information is `__temporal_workflow_metadata`.
|
|
35
35
|
message WorkflowMetadata {
|
|
36
36
|
// Metadata provided at declaration or creation time.
|
|
37
37
|
WorkflowDefinition definition = 1;
|
|
@@ -62,5 +62,5 @@ message WorkflowInteractionDefinition {
|
|
|
62
62
|
// An optional interaction description provided by the application.
|
|
63
63
|
// By convention, external tools may interpret its first part,
|
|
64
64
|
// i.e., ending with a line break, as a summary of the description.
|
|
65
|
-
string description = 2;
|
|
65
|
+
string description = 2;
|
|
66
66
|
}
|