temporalio 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +175 -4
- data/bridge/Cargo.lock +44 -21
- data/bridge/Cargo.toml +1 -0
- data/bridge/sdk-core/Cargo.toml +1 -1
- data/bridge/sdk-core/README.md +1 -4
- data/bridge/sdk-core/client/Cargo.toml +1 -1
- data/bridge/sdk-core/client/src/lib.rs +12 -20
- data/bridge/sdk-core/client/src/raw.rs +9 -8
- data/bridge/sdk-core/client/src/retry.rs +100 -23
- data/bridge/sdk-core/core/Cargo.toml +7 -7
- data/bridge/sdk-core/core/benches/workflow_replay.rs +13 -10
- data/bridge/sdk-core/core/src/abstractions.rs +22 -22
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +146 -43
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +419 -9
- data/bridge/sdk-core/core/src/core_tests/queries.rs +247 -89
- data/bridge/sdk-core/core/src/core_tests/workers.rs +2 -2
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +1 -1
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +47 -27
- data/bridge/sdk-core/core/src/lib.rs +139 -32
- data/bridge/sdk-core/core/src/protosext/mod.rs +1 -1
- data/bridge/sdk-core/core/src/replay/mod.rs +185 -41
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +190 -0
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +184 -139
- data/bridge/sdk-core/core/src/telemetry/mod.rs +310 -315
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +4 -3
- data/bridge/sdk-core/core/src/test_help/mod.rs +23 -9
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +12 -6
- data/bridge/sdk-core/core/src/worker/activities.rs +40 -23
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +1 -1
- data/bridge/sdk-core/core/src/worker/client.rs +30 -4
- data/bridge/sdk-core/core/src/worker/mod.rs +23 -19
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +10 -19
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +99 -25
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +3 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +2 -6
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +24 -22
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +12 -38
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +178 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +8 -2
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +1 -5
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +1 -1
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +233 -217
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +1 -6
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +4 -4
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +13 -5
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +86 -29
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +2 -2
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +56 -11
- data/bridge/sdk-core/core-api/Cargo.toml +4 -3
- data/bridge/sdk-core/core-api/src/lib.rs +1 -43
- data/bridge/sdk-core/core-api/src/telemetry.rs +147 -0
- data/bridge/sdk-core/core-api/src/worker.rs +13 -0
- data/bridge/sdk-core/etc/deps.svg +115 -140
- data/bridge/sdk-core/etc/regen-depgraph.sh +5 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +1 -1
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
- data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -3
- data/bridge/sdk-core/protos/api_upstream/build/go.mod +7 -0
- data/bridge/sdk-core/protos/api_upstream/build/go.sum +5 -0
- data/bridge/sdk-core/protos/api_upstream/{temporal/api/update/v1/message.proto → build/tools.go} +6 -23
- data/bridge/sdk-core/protos/api_upstream/go.mod +6 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +12 -9
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +20 -19
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +4 -4
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +5 -3
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +23 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/{cluster.proto → interaction_type.proto} +10 -11
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +2 -13
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +26 -19
- data/bridge/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +87 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +21 -61
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -21
- data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +110 -31
- data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +4 -4
- data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +3 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +60 -16
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +17 -3
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +2 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +8 -1
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
- data/bridge/sdk-core/sdk/Cargo.toml +2 -2
- data/bridge/sdk-core/sdk/src/interceptors.rs +36 -3
- data/bridge/sdk-core/sdk/src/lib.rs +7 -5
- data/bridge/sdk-core/sdk/src/workflow_context.rs +13 -2
- data/bridge/sdk-core/sdk/src/workflow_future.rs +3 -7
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +1 -1
- data/bridge/sdk-core/sdk-core-protos/build.rs +0 -1
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +65 -18
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +22 -22
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +104 -44
- data/bridge/sdk-core/test-utils/Cargo.toml +2 -1
- data/bridge/sdk-core/test-utils/src/lib.rs +81 -29
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +5 -2
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +37 -0
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -13
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +167 -13
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +53 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +106 -20
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +18 -8
- data/bridge/sdk-core/tests/main.rs +6 -4
- data/bridge/src/connection.rs +81 -62
- data/bridge/src/lib.rs +92 -33
- data/bridge/src/runtime.rs +9 -2
- data/bridge/src/worker.rs +53 -2
- data/lib/bridge.so +0 -0
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +8 -6
- data/lib/gen/temporal/api/command/v1/message_pb.rb +17 -9
- data/lib/gen/temporal/api/common/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +2 -1
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +3 -1
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +2 -1
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +3 -2
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +7 -1
- data/lib/gen/temporal/api/enums/v1/interaction_type_pb.rb +25 -0
- data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/query_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/reset_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +1 -1
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +1 -6
- data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +1 -1
- data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/failure/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/filter/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/history/v1/message_pb.rb +19 -18
- data/lib/gen/temporal/api/interaction/v1/message_pb.rb +49 -0
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +11 -51
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +1 -1
- data/lib/gen/temporal/api/query/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/replication/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/schedule/v1/message_pb.rb +22 -1
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +2 -2
- data/lib/gen/temporal/api/version/v1/message_pb.rb +1 -1
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +2 -1
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +27 -10
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +1 -1
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +1 -0
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +5 -1
- data/lib/temporalio/activity/context.rb +97 -0
- data/lib/temporalio/activity/info.rb +67 -0
- data/lib/temporalio/activity.rb +85 -0
- data/lib/temporalio/bridge/error.rb +8 -0
- data/lib/temporalio/bridge.rb +14 -0
- data/lib/{temporal → temporalio}/client/implementation.rb +49 -48
- data/lib/{temporal → temporalio}/client/workflow_handle.rb +35 -35
- data/lib/{temporal → temporalio}/client.rb +19 -32
- data/lib/{temporal → temporalio}/connection.rb +238 -223
- data/lib/{temporal → temporalio}/data_converter.rb +76 -35
- data/lib/{temporal → temporalio}/error/failure.rb +6 -6
- data/lib/{temporal → temporalio}/error/workflow_failure.rb +4 -2
- data/lib/{temporal → temporalio}/errors.rb +19 -1
- data/lib/{temporal → temporalio}/failure_converter/base.rb +5 -5
- data/lib/{temporal → temporalio}/failure_converter/basic.rb +58 -52
- data/lib/temporalio/failure_converter.rb +7 -0
- data/lib/{temporal → temporalio}/interceptor/chain.rb +2 -1
- data/lib/{temporal → temporalio}/interceptor/client.rb +22 -1
- data/lib/{temporal → temporalio}/payload_codec/base.rb +5 -5
- data/lib/{temporal → temporalio}/payload_converter/base.rb +3 -3
- data/lib/{temporal → temporalio}/payload_converter/bytes.rb +4 -3
- data/lib/{temporal → temporalio}/payload_converter/composite.rb +7 -5
- data/lib/{temporal → temporalio}/payload_converter/encoding_base.rb +4 -4
- data/lib/{temporal → temporalio}/payload_converter/json.rb +4 -3
- data/lib/{temporal → temporalio}/payload_converter/nil.rb +4 -3
- data/lib/temporalio/payload_converter.rb +14 -0
- data/lib/{temporal → temporalio}/retry_policy.rb +4 -4
- data/lib/{temporal → temporalio}/retry_state.rb +1 -1
- data/lib/temporalio/runtime.rb +25 -0
- data/lib/{temporal → temporalio}/timeout_type.rb +2 -2
- data/lib/temporalio/version.rb +3 -0
- data/lib/temporalio/worker/activity_runner.rb +92 -0
- data/lib/temporalio/worker/activity_worker.rb +138 -0
- data/lib/temporalio/worker/reactor.rb +46 -0
- data/lib/temporalio/worker/runner.rb +63 -0
- data/lib/temporalio/worker/sync_worker.rb +88 -0
- data/lib/temporalio/worker/thread_pool_executor.rb +51 -0
- data/lib/temporalio/worker.rb +198 -0
- data/lib/{temporal → temporalio}/workflow/execution_info.rb +4 -4
- data/lib/{temporal → temporalio}/workflow/execution_status.rb +1 -1
- data/lib/{temporal → temporalio}/workflow/id_reuse_policy.rb +6 -6
- data/lib/{temporal → temporalio}/workflow/query_reject_condition.rb +5 -5
- data/lib/temporalio.rb +12 -3
- data/temporalio.gemspec +7 -3
- metadata +79 -56
- data/bridge/sdk-core/bridge-ffi/Cargo.toml +0 -24
- data/bridge/sdk-core/bridge-ffi/LICENSE.txt +0 -23
- data/bridge/sdk-core/bridge-ffi/build.rs +0 -25
- data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -249
- data/bridge/sdk-core/bridge-ffi/src/lib.rs +0 -825
- data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +0 -211
- data/bridge/sdk-core/core/src/log_export.rs +0 -62
- data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +0 -127
- data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +0 -71
- data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +0 -83
- data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
- data/bridge/sdk-core/sdk/src/conversions.rs +0 -8
- data/lib/gen/temporal/api/cluster/v1/message_pb.rb +0 -67
- data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +0 -26
- data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -26
- data/lib/temporal/bridge.rb +0 -14
- data/lib/temporal/failure_converter.rb +0 -8
- data/lib/temporal/payload_converter.rb +0 -14
- data/lib/temporal/runtime.rb +0 -22
- data/lib/temporal/version.rb +0 -3
- data/lib/temporal.rb +0 -8
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/query/v1;query";
|
|
28
28
|
option java_package = "io.temporal.api.query.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "MessageProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::Query::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.Query.V1";
|
33
33
|
|
34
34
|
import "temporal/api/enums/v1/query.proto";
|
35
35
|
import "temporal/api/enums/v1/workflow.proto";
|
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/replication/v1;replication";
|
|
28
28
|
option java_package = "io.temporal.api.replication.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "MessageProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::Replication::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.Replication.V1";
|
33
33
|
|
34
34
|
import "google/protobuf/timestamp.proto";
|
35
35
|
|
@@ -20,6 +20,11 @@
|
|
20
20
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
21
|
// THE SOFTWARE.
|
22
22
|
|
23
|
+
// (-- api-linter: core::0203::optional=disabled
|
24
|
+
// aip.dev/not-precedent: field_behavior annotation not available in our gogo fork --)
|
25
|
+
// (-- api-linter: core::0203::input-only=disabled
|
26
|
+
// aip.dev/not-precedent: field_behavior annotation not available in our gogo fork --)
|
27
|
+
|
23
28
|
syntax = "proto3";
|
24
29
|
|
25
30
|
package temporal.api.schedule.v1;
|
@@ -28,8 +33,8 @@ option go_package = "go.temporal.io/api/schedule/v1;schedule";
|
|
28
33
|
option java_package = "io.temporal.api.schedule.v1";
|
29
34
|
option java_multiple_files = true;
|
30
35
|
option java_outer_classname = "MessageProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
36
|
+
option ruby_package = "Temporalio::Api::Schedule::V1";
|
37
|
+
option csharp_namespace = "Temporalio.Api.Schedule.V1";
|
33
38
|
|
34
39
|
import "google/protobuf/duration.proto";
|
35
40
|
import "google/protobuf/timestamp.proto";
|
@@ -41,7 +46,8 @@ import "temporal/api/enums/v1/schedule.proto";
|
|
41
46
|
import "temporal/api/workflow/v1/message.proto";
|
42
47
|
|
43
48
|
// CalendarSpec describes an event specification relative to the calendar,
|
44
|
-
// similar to a traditional cron specification
|
49
|
+
// similar to a traditional cron specification, but with labeled fields. Each
|
50
|
+
// field can be one of:
|
45
51
|
// *: matches always
|
46
52
|
// x: matches when the field equals x
|
47
53
|
// x/y : matches when the field equals x+n*y where n is an integer
|
@@ -49,13 +55,14 @@ import "temporal/api/workflow/v1/message.proto";
|
|
49
55
|
// w,x,y,...: matches when the field is one of the listed values
|
50
56
|
// Each x, y, z, ... is either a decimal integer, or a month or day of week name
|
51
57
|
// or abbreviation (in the appropriate fields).
|
52
|
-
// A
|
58
|
+
// A timestamp matches if all fields match.
|
59
|
+
// Note that fields have different default values, for convenience.
|
53
60
|
// Note that the special case that some cron implementations have for treating
|
54
61
|
// day_of_month and day_of_week as "or" instead of "and" when both are set is
|
55
62
|
// not implemented.
|
56
63
|
// day_of_week can accept 0 or 7 as Sunday
|
57
|
-
//
|
58
|
-
//
|
64
|
+
// CalendarSpec gets compiled into StructuredCalendarSpec, which is what will be
|
65
|
+
// returned if you describe the schedule.
|
59
66
|
message CalendarSpec {
|
60
67
|
// Expression to match seconds. Default: 0
|
61
68
|
string second = 1;
|
@@ -73,6 +80,51 @@ message CalendarSpec {
|
|
73
80
|
string year = 6;
|
74
81
|
// Expression to match days of the week. Default: *
|
75
82
|
string day_of_week = 7;
|
83
|
+
// Free-form comment describing the intention of this spec.
|
84
|
+
string comment = 8;
|
85
|
+
}
|
86
|
+
|
87
|
+
// Range represents a set of integer values, used to match fields of a calendar
|
88
|
+
// time in StructuredCalendarSpec. If end < start, then end is interpreted as
|
89
|
+
// equal to start. This means you can use a Range with start set to a value, and
|
90
|
+
// end and step unset (defaulting to 0) to represent a single value.
|
91
|
+
message Range {
|
92
|
+
// Start of range (inclusive).
|
93
|
+
int32 start = 1;
|
94
|
+
// End of range (inclusive).
|
95
|
+
int32 end = 2;
|
96
|
+
// Step (optional, default 1).
|
97
|
+
int32 step = 3;
|
98
|
+
}
|
99
|
+
|
100
|
+
// StructuredCalendarSpec describes an event specification relative to the
|
101
|
+
// calendar, in a form that's easy to work with programmatically. Each field can
|
102
|
+
// be one or more ranges.
|
103
|
+
// A timestamp matches if at least one range of each field matches the
|
104
|
+
// corresponding fields of the timestamp, except for year: if year is missing,
|
105
|
+
// that means all years match. For all fields besides year, at least one Range
|
106
|
+
// must be present to match anything.
|
107
|
+
// TODO: add relative-to-end-of-month
|
108
|
+
// TODO: add nth day-of-week in month
|
109
|
+
message StructuredCalendarSpec {
|
110
|
+
// Match seconds (0-59)
|
111
|
+
repeated Range second = 1;
|
112
|
+
// Match minutes (0-59)
|
113
|
+
repeated Range minute = 2;
|
114
|
+
// Match hours (0-23)
|
115
|
+
repeated Range hour = 3;
|
116
|
+
// Match days of the month (1-31)
|
117
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
118
|
+
// aip.dev/not-precedent: standard name of field --)
|
119
|
+
repeated Range day_of_month = 4;
|
120
|
+
// Match months (1-12)
|
121
|
+
repeated Range month = 5;
|
122
|
+
// Match years.
|
123
|
+
repeated Range year = 6;
|
124
|
+
// Match days of the week (0-6; 0 is Sunday).
|
125
|
+
repeated Range day_of_week = 7;
|
126
|
+
// Free-form comment describing the intention of this spec.
|
127
|
+
string comment = 8;
|
76
128
|
}
|
77
129
|
|
78
130
|
// IntervalSpec matches times that can be expressed as:
|
@@ -97,24 +149,56 @@ message IntervalSpec {
|
|
97
149
|
// definition of a time zone can change over time (most commonly, when daylight
|
98
150
|
// saving time policy changes for an area). To create a totally self-contained
|
99
151
|
// ScheduleSpec, use UTC or include timezone_data.
|
152
|
+
//
|
153
|
+
// For input, you can provide zero or more of: structured_calendar, calendar,
|
154
|
+
// cron_string, interval, and exclude_structured_calendar, and all of them will
|
155
|
+
// be used (the schedule will take action at the union of all of their times,
|
156
|
+
// minus the ones that match exclude_structured_calendar).
|
157
|
+
//
|
158
|
+
// On input, calendar and cron_string fields will be compiled into
|
159
|
+
// structured_calendar (and maybe interval and timezone_name), so if you
|
160
|
+
// Describe a schedule, you'll see only structured_calendar, interval, etc.
|
100
161
|
message ScheduleSpec {
|
162
|
+
// Calendar-based specifications of times.
|
163
|
+
repeated StructuredCalendarSpec structured_calendar = 7;
|
164
|
+
// cron_string holds a traditional cron specification as a string. It
|
165
|
+
// accepts 5, 6, or 7 fields, separated by spaces, and interprets them the
|
166
|
+
// same way as CalendarSpec.
|
167
|
+
// 5 fields: minute, hour, day_of_month, month, day_of_week
|
168
|
+
// 6 fields: minute, hour, day_of_month, month, day_of_week, year
|
169
|
+
// 7 fields: second, minute, hour, day_of_month, month, day_of_week, year
|
170
|
+
// If year is not given, it defaults to *. If second is not given, it
|
171
|
+
// defaults to 0.
|
172
|
+
// Shorthands @yearly, @monthly, @weekly, @daily, and @hourly are also
|
173
|
+
// accepted instead of the 5-7 time fields.
|
174
|
+
// Optionally, the string can be preceded by CRON_TZ=<timezone name> or
|
175
|
+
// TZ=<timezone name>, which will get copied to timezone_name. (There must
|
176
|
+
// not also be a timezone_name present.)
|
177
|
+
// Optionally "#" followed by a comment can appear at the end of the string.
|
178
|
+
// Note that the special case that some cron implementations have for
|
179
|
+
// treating day_of_month and day_of_week as "or" instead of "and" when both
|
180
|
+
// are set is not implemented.
|
181
|
+
// @every <interval>[/<phase>] is accepted and gets compiled into an
|
182
|
+
// IntervalSpec instead. <interval> and <phase> should be a decimal integer
|
183
|
+
// with a unit suffix s, m, h, or d.
|
184
|
+
repeated string cron_string = 8;
|
101
185
|
// Calendar-based specifications of times.
|
102
186
|
repeated CalendarSpec calendar = 1;
|
103
187
|
// Interval-based specifications of times.
|
104
188
|
repeated IntervalSpec interval = 2;
|
105
|
-
// Any timestamps matching any of
|
106
|
-
//
|
107
|
-
repeated
|
108
|
-
//
|
109
|
-
// and end_time make an inclusive interval.
|
189
|
+
// Any timestamps matching any of exclude_* will be skipped.
|
190
|
+
repeated CalendarSpec exclude_calendar = 3 [deprecated = true]; // use exclude_structured_calendar
|
191
|
+
repeated StructuredCalendarSpec exclude_structured_calendar = 9;
|
192
|
+
// If start_time is set, any timestamps before start_time will be skipped.
|
193
|
+
// (Together, start_time and end_time make an inclusive interval.)
|
110
194
|
google.protobuf.Timestamp start_time = 4 [(gogoproto.stdtime) = true];
|
111
|
-
//
|
195
|
+
// If end_time is set, any timestamps after end_time will be skipped.
|
112
196
|
google.protobuf.Timestamp end_time = 5 [(gogoproto.stdtime) = true];
|
113
197
|
// All timestamps will be incremented by a random value from 0 to this
|
114
|
-
// amount of jitter. Default:
|
198
|
+
// amount of jitter. Default: 0
|
115
199
|
google.protobuf.Duration jitter = 6 [(gogoproto.stdduration) = true];
|
116
200
|
|
117
|
-
// Time zone to interpret all
|
201
|
+
// Time zone to interpret all calendar-based specs in.
|
118
202
|
//
|
119
203
|
// If unset, defaults to UTC. We recommend using UTC for your application if
|
120
204
|
// at all possible, to avoid various surprising properties of time zones.
|
@@ -134,21 +218,17 @@ message ScheduleSpec {
|
|
134
218
|
// at 2:30am and specify a time zone that follows DST, that action will not
|
135
219
|
// be triggered on the day that has no 2:30am. Similarly, an action that
|
136
220
|
// fires at 1:30am will be triggered twice on the day that has two 1:30s.
|
221
|
+
//
|
222
|
+
// Also note that no actions are taken on leap-seconds (e.g. 23:59:60 UTC).
|
137
223
|
string timezone_name = 10;
|
138
224
|
bytes timezone_data = 11;
|
139
225
|
}
|
140
226
|
|
141
227
|
message SchedulePolicies {
|
142
228
|
// Policy for overlaps.
|
143
|
-
// Note that this can be changed after a schedule has taken some actions,
|
144
|
-
//
|
145
|
-
//
|
146
|
-
// concurrently, but for all other policies only one can run at a time. Changing
|
147
|
-
// between these two classes will leave all workflows with the other class alone.
|
148
|
-
// E.g., if changing from ALLOW_ALL to CANCEL_OTHER, and there are workflows running,
|
149
|
-
// those workflows will not be cancelled. If changing from ALLOW_ALL to SKIP with
|
150
|
-
// workflows running, the running workflows will not cause the next action to be
|
151
|
-
// skipped.
|
229
|
+
// Note that this can be changed after a schedule has taken some actions,
|
230
|
+
// and some changes might produce unintuitive results. In general, the later
|
231
|
+
// policy overrides the earlier policy.
|
152
232
|
temporal.api.enums.v1.ScheduleOverlapPolicy overlap_policy = 1;
|
153
233
|
|
154
234
|
// Policy for catchups:
|
@@ -195,10 +275,11 @@ message ScheduleState {
|
|
195
275
|
// If true, do not take any actions based on the schedule spec.
|
196
276
|
bool paused = 2;
|
197
277
|
|
198
|
-
// If limited_actions is true, decrement remaining_actions after each
|
199
|
-
// not take any more scheduled actions if remaining_actions
|
200
|
-
// be taken by explicit request
|
201
|
-
//
|
278
|
+
// If limited_actions is true, decrement remaining_actions after each
|
279
|
+
// action, and do not take any more scheduled actions if remaining_actions
|
280
|
+
// is zero. Actions may still be taken by explicit request (i.e. trigger
|
281
|
+
// immediately or backfill). Skipped actions (due to overlap policy) do not
|
282
|
+
// count against remaining actions.
|
202
283
|
bool limited_actions = 3;
|
203
284
|
int64 remaining_actions = 4;
|
204
285
|
}
|
@@ -258,8 +339,7 @@ message ScheduleInfo {
|
|
258
339
|
google.protobuf.Timestamp create_time = 6 [(gogoproto.stdtime) = true];
|
259
340
|
google.protobuf.Timestamp update_time = 7 [(gogoproto.stdtime) = true];
|
260
341
|
|
261
|
-
|
262
|
-
string invalid_schedule_error = 8;
|
342
|
+
string invalid_schedule_error = 8 [deprecated = true];
|
263
343
|
}
|
264
344
|
|
265
345
|
message Schedule {
|
@@ -273,8 +353,7 @@ message Schedule {
|
|
273
353
|
// that's returned in ListSchedules.
|
274
354
|
message ScheduleListInfo {
|
275
355
|
// From spec:
|
276
|
-
// Some fields are
|
277
|
-
// from this copy of spec: exclude_calendar, jitter, timezone_data.
|
356
|
+
// Some fields are dropped from this copy of spec: timezone_data
|
278
357
|
ScheduleSpec spec = 1;
|
279
358
|
|
280
359
|
// From action:
|
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/taskqueue/v1;taskqueue";
|
|
28
28
|
option java_package = "io.temporal.api.taskqueue.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "MessageProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::TaskQueue::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.TaskQueue.V1";
|
33
33
|
|
34
34
|
import "google/protobuf/duration.proto";
|
35
35
|
import "google/protobuf/timestamp.proto";
|
@@ -77,7 +77,7 @@ message PollerInfo {
|
|
77
77
|
double rate_per_second = 3;
|
78
78
|
// If a worker has specified an ID for use with the worker versioning feature while polling,
|
79
79
|
// that id must appear here.
|
80
|
-
|
80
|
+
VersionId worker_versioning_id = 4;
|
81
81
|
}
|
82
82
|
|
83
83
|
message StickyExecutionAttributes {
|
@@ -98,7 +98,7 @@ message VersionIdNode {
|
|
98
98
|
}
|
99
99
|
|
100
100
|
// Used by the worker versioning APIs, represents a specific version of something
|
101
|
-
// Currently, that's just a whole-worker id. In the future, if we support
|
101
|
+
// Currently, that's just a whole-worker id. In the future, if we support
|
102
102
|
// WASM workflow bundle based versioning, for example, then the inside of this
|
103
103
|
// message may become a oneof of different version types.
|
104
104
|
message VersionId {
|
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/version/v1;version";
|
|
28
28
|
option java_package = "io.temporal.api.version.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "MessageProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::Version::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.Version.V1";
|
33
33
|
|
34
34
|
import "google/protobuf/timestamp.proto";
|
35
35
|
import "dependencies/gogoproto/gogo.proto";
|
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/workflow/v1;workflow";
|
|
28
28
|
option java_package = "io.temporal.api.workflow.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "MessageProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::Workflow::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.Workflow.V1";
|
33
33
|
|
34
34
|
import "google/protobuf/duration.proto";
|
35
35
|
import "google/protobuf/timestamp.proto";
|
@@ -56,6 +56,7 @@ message WorkflowExecutionInfo {
|
|
56
56
|
ResetPoints auto_reset_points = 12;
|
57
57
|
string task_queue = 13;
|
58
58
|
int64 state_transition_count = 14;
|
59
|
+
int64 history_size_bytes = 15;
|
59
60
|
}
|
60
61
|
|
61
62
|
message WorkflowExecutionConfig {
|
data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto
CHANGED
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/workflowservice/v1;workflowservice";
|
|
28
28
|
option java_package = "io.temporal.api.workflowservice.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "RequestResponseProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::WorkflowService::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.WorkflowService.V1";
|
33
33
|
|
34
34
|
import "temporal/api/enums/v1/batch_operation.proto";
|
35
35
|
import "temporal/api/enums/v1/workflow.proto";
|
@@ -42,6 +42,7 @@ import "temporal/api/enums/v1/task_queue.proto";
|
|
42
42
|
import "temporal/api/enums/v1/update.proto";
|
43
43
|
import "temporal/api/common/v1/message.proto";
|
44
44
|
import "temporal/api/history/v1/message.proto";
|
45
|
+
import "temporal/api/interaction/v1/message.proto";
|
45
46
|
import "temporal/api/workflow/v1/message.proto";
|
46
47
|
import "temporal/api/command/v1/message.proto";
|
47
48
|
import "temporal/api/failure/v1/message.proto";
|
@@ -51,7 +52,6 @@ import "temporal/api/query/v1/message.proto";
|
|
51
52
|
import "temporal/api/replication/v1/message.proto";
|
52
53
|
import "temporal/api/schedule/v1/message.proto";
|
53
54
|
import "temporal/api/taskqueue/v1/message.proto";
|
54
|
-
import "temporal/api/update/v1/message.proto";
|
55
55
|
import "temporal/api/version/v1/message.proto";
|
56
56
|
import "temporal/api/batch/v1/message.proto";
|
57
57
|
|
@@ -222,11 +222,11 @@ message PollWorkflowTaskQueueRequest {
|
|
222
222
|
// "checksum" in this field name isn't very accurate, it should be though of as an id.
|
223
223
|
string binary_checksum = 4;
|
224
224
|
// If set, the worker is opting in to build-id based versioning and wishes to only
|
225
|
-
// receive tasks that are considered compatible with the version provided
|
225
|
+
// receive tasks that are considered compatible with the version provided.
|
226
226
|
// Doing so only makes sense in conjunction with the `UpdateWorkerBuildIdOrdering` API.
|
227
|
-
// When
|
228
|
-
// `binary_checksum`.
|
229
|
-
|
227
|
+
// When `worker_versioning_id` has a `worker_build_id`, and `binary_checksum` is not
|
228
|
+
// set, that value should also be considered as the `binary_checksum`.
|
229
|
+
temporal.api.taskqueue.v1.VersionId worker_versioning_id = 5;
|
230
230
|
}
|
231
231
|
|
232
232
|
message PollWorkflowTaskQueueResponse {
|
@@ -267,6 +267,8 @@ message PollWorkflowTaskQueueResponse {
|
|
267
267
|
// Queries that should be executed after applying the history in this task. Responses should be
|
268
268
|
// attached to `RespondWorkflowTaskCompletedRequest::query_results`
|
269
269
|
map<string, temporal.api.query.v1.WorkflowQuery> queries = 14;
|
270
|
+
|
271
|
+
repeated temporal.api.interaction.v1.Invocation interactions = 15;
|
270
272
|
}
|
271
273
|
|
272
274
|
message RespondWorkflowTaskCompletedRequest {
|
@@ -292,6 +294,11 @@ message RespondWorkflowTaskCompletedRequest {
|
|
292
294
|
// Responses to the `queries` field in the task being responded to
|
293
295
|
map<string, temporal.api.query.v1.WorkflowQueryResult> query_results = 8;
|
294
296
|
string namespace = 9;
|
297
|
+
// If using versioning, worker should send the same id here that it used to
|
298
|
+
// poll for the workflow task.
|
299
|
+
// When `worker_versioning_id` has a `worker_build_id`, and `binary_checksum` is not
|
300
|
+
// set, that value should also be considered as the `binary_checksum`.
|
301
|
+
temporal.api.taskqueue.v1.VersionId worker_versioning_id = 10;
|
295
302
|
}
|
296
303
|
|
297
304
|
message RespondWorkflowTaskCompletedResponse {
|
@@ -299,6 +306,8 @@ message RespondWorkflowTaskCompletedResponse {
|
|
299
306
|
PollWorkflowTaskQueueResponse workflow_task = 1;
|
300
307
|
// See `ScheduleActivityTaskCommandAttributes::request_start`
|
301
308
|
repeated PollActivityTaskQueueResponse activity_tasks = 2;
|
309
|
+
|
310
|
+
int64 reset_history_event_id = 3;
|
302
311
|
}
|
303
312
|
|
304
313
|
message RespondWorkflowTaskFailedRequest {
|
@@ -326,9 +335,9 @@ message PollActivityTaskQueueRequest {
|
|
326
335
|
string identity = 3;
|
327
336
|
temporal.api.taskqueue.v1.TaskQueueMetadata task_queue_metadata = 4;
|
328
337
|
// If set, the worker is opting in to build-id based versioning and wishes to only
|
329
|
-
// receive tasks that are considered compatible with the version provided
|
338
|
+
// receive tasks that are considered compatible with the version provided.
|
330
339
|
// Doing so only makes sense in conjunction with the `UpdateWorkerBuildIdOrdering` API.
|
331
|
-
|
340
|
+
temporal.api.taskqueue.v1.VersionId worker_versioning_id = 5;
|
332
341
|
}
|
333
342
|
|
334
343
|
message PollActivityTaskQueueResponse {
|
@@ -630,6 +639,19 @@ message TerminateWorkflowExecutionRequest {
|
|
630
639
|
message TerminateWorkflowExecutionResponse {
|
631
640
|
}
|
632
641
|
|
642
|
+
// (-- api-linter: core::0135::request-unknown-fields=disabled
|
643
|
+
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
644
|
+
// (-- api-linter: core::0135::request-name-required=disabled
|
645
|
+
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
646
|
+
message DeleteWorkflowExecutionRequest {
|
647
|
+
string namespace = 1;
|
648
|
+
// Workflow Execution to delete. If run_id is not specified, the latest one is used.
|
649
|
+
temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
|
650
|
+
}
|
651
|
+
|
652
|
+
message DeleteWorkflowExecutionResponse {
|
653
|
+
}
|
654
|
+
|
633
655
|
message ListOpenWorkflowExecutionsRequest {
|
634
656
|
string namespace = 1;
|
635
657
|
int32 maximum_page_size = 2;
|
@@ -821,6 +843,14 @@ message GetSystemInfoResponse {
|
|
821
843
|
|
822
844
|
// True if server uses protos that include temporal.api.failure.v1.Failure.encoded_attributes
|
823
845
|
bool encoded_failure_attributes = 5;
|
846
|
+
|
847
|
+
// True if server supports dispatching Workflow and Activity tasks based on a worker's build_id
|
848
|
+
// (see:
|
849
|
+
// https://github.com/temporalio/proposals/blob/a123af3b559f43db16ea6dd31870bfb754c4dc5e/versioning/worker-versions.md)
|
850
|
+
bool build_id_based_versioning = 6;
|
851
|
+
|
852
|
+
// True if server supports upserting workflow memo
|
853
|
+
bool upsert_memo = 7;
|
824
854
|
}
|
825
855
|
}
|
826
856
|
|
@@ -874,6 +904,9 @@ message DescribeScheduleRequest {
|
|
874
904
|
message DescribeScheduleResponse {
|
875
905
|
// The complete current schedule details. This may not match the schedule as
|
876
906
|
// created because:
|
907
|
+
// - some types of schedule specs may get compiled into others (e.g.
|
908
|
+
// CronString into StructuredCalendarSpec)
|
909
|
+
// - some unspecified fields may be replaced by defaults
|
877
910
|
// - some fields in the state are modified automatically
|
878
911
|
// - the schedule may have been modified by UpdateSchedule or PatchSchedule
|
879
912
|
temporal.api.schedule.v1.Schedule schedule = 1;
|
@@ -1038,9 +1071,12 @@ message UpdateWorkflowRequest {
|
|
1038
1071
|
// part of the same execution chain as this id.
|
1039
1072
|
string first_execution_run_id = 5;
|
1040
1073
|
|
1074
|
+
// A string identifying the agent that requested this interaction.
|
1075
|
+
string identity = 6;
|
1076
|
+
|
1041
1077
|
// The name under which the workflow update function is registered and the
|
1042
1078
|
// arguments to pass to said function.
|
1043
|
-
temporal.api.
|
1079
|
+
temporal.api.interaction.v1.Input input = 7;
|
1044
1080
|
}
|
1045
1081
|
|
1046
1082
|
message UpdateWorkflowResponse {
|
@@ -1048,10 +1084,7 @@ message UpdateWorkflowResponse {
|
|
1048
1084
|
// polling if it is not returned as part of the gRPC response
|
1049
1085
|
bytes update_token = 1;
|
1050
1086
|
// The success or failure status of the update
|
1051
|
-
|
1052
|
-
temporal.api.common.v1.Payloads success = 2;
|
1053
|
-
temporal.api.failure.v1.Failure failure = 3;
|
1054
|
-
}
|
1087
|
+
temporal.api.interaction.v1.Output output = 2;
|
1055
1088
|
}
|
1056
1089
|
|
1057
1090
|
message StartBatchOperationRequest {
|
@@ -1059,17 +1092,20 @@ message StartBatchOperationRequest {
|
|
1059
1092
|
string namespace = 1;
|
1060
1093
|
// Visibility query defines the the group of workflow to do batch operation
|
1061
1094
|
string visibility_query = 2;
|
1095
|
+
// Job ID defines the unique ID for the batch job
|
1096
|
+
string job_id = 3;
|
1097
|
+
// Reason to perform the batch operation
|
1098
|
+
string reason = 4;
|
1062
1099
|
// Operation input
|
1063
1100
|
oneof operation {
|
1064
1101
|
temporal.api.batch.v1.BatchOperationTermination termination_operation = 10;
|
1065
1102
|
temporal.api.batch.v1.BatchOperationSignal signal_operation = 11;
|
1066
1103
|
temporal.api.batch.v1.BatchOperationCancellation cancellation_operation = 12;
|
1104
|
+
temporal.api.batch.v1.BatchOperationDeletion deletion_operation = 13;
|
1067
1105
|
}
|
1068
1106
|
}
|
1069
1107
|
|
1070
1108
|
message StartBatchOperationResponse {
|
1071
|
-
// Batch job id
|
1072
|
-
string job_id = 1;
|
1073
1109
|
}
|
1074
1110
|
|
1075
1111
|
message StopBatchOperationRequest {
|
@@ -1077,6 +1113,10 @@ message StopBatchOperationRequest {
|
|
1077
1113
|
string namespace = 1;
|
1078
1114
|
// Batch job id
|
1079
1115
|
string job_id = 2;
|
1116
|
+
// Reason to stop a batch operation
|
1117
|
+
string reason = 3;
|
1118
|
+
// Identity of the operator
|
1119
|
+
string identity = 4;
|
1080
1120
|
}
|
1081
1121
|
|
1082
1122
|
message StopBatchOperationResponse {
|
@@ -1106,6 +1146,10 @@ message DescribeBatchOperationResponse {
|
|
1106
1146
|
int64 complete_operation_count = 7;
|
1107
1147
|
// Failure operation count
|
1108
1148
|
int64 failure_operation_count = 8;
|
1149
|
+
// Identity indicates the operator identity
|
1150
|
+
string identity = 9;
|
1151
|
+
// Reason indicates the reason to stop a operation
|
1152
|
+
string reason = 10;
|
1109
1153
|
}
|
1110
1154
|
|
1111
1155
|
message ListBatchOperationsRequest {
|
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/workflowservice/v1;workflowservice";
|
|
28
28
|
option java_package = "io.temporal.api.workflowservice.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "ServiceProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::WorkflowService::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.WorkflowService.V1";
|
33
33
|
|
34
34
|
|
35
35
|
import "temporal/api/workflowservice/v1/request_response.proto";
|
@@ -256,6 +256,17 @@ service WorkflowService {
|
|
256
256
|
rpc TerminateWorkflowExecution (TerminateWorkflowExecutionRequest) returns (TerminateWorkflowExecutionResponse) {
|
257
257
|
}
|
258
258
|
|
259
|
+
// DeleteWorkflowExecution asynchronously deletes a specific Workflow Execution (when
|
260
|
+
// WorkflowExecution.run_id is provided) or the latest Workflow Execution (when
|
261
|
+
// WorkflowExecution.run_id is not provided). If the Workflow Execution is Running, it will be
|
262
|
+
// terminated before deletion.
|
263
|
+
// (-- api-linter: core::0135::method-signature=disabled
|
264
|
+
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
265
|
+
// (-- api-linter: core::0135::response-message-name=disabled
|
266
|
+
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
267
|
+
rpc DeleteWorkflowExecution (DeleteWorkflowExecutionRequest) returns (DeleteWorkflowExecutionResponse) {
|
268
|
+
}
|
269
|
+
|
259
270
|
// ListOpenWorkflowExecutions is a visibility API to list the open executions in a specific namespace.
|
260
271
|
rpc ListOpenWorkflowExecutions (ListOpenWorkflowExecutionsRequest) returns (ListOpenWorkflowExecutionsResponse) {
|
261
272
|
}
|
@@ -369,12 +380,15 @@ service WorkflowService {
|
|
369
380
|
rpc ListSchedules (ListSchedulesRequest) returns (ListSchedulesResponse) {
|
370
381
|
}
|
371
382
|
|
383
|
+
// Allows users to specify a graph of worker build id based versions on a
|
384
|
+
// per task queue basis. Versions are ordered, and may be either compatible
|
385
|
+
// with some extant version, or a new incompatible version.
|
372
386
|
// (-- api-linter: core::0134::response-message-name=disabled
|
373
387
|
// aip.dev/not-precedent: UpdateWorkerBuildIdOrdering RPC doesn't follow Google API format. --)
|
374
388
|
// (-- api-linter: core::0134::method-signature=disabled
|
375
389
|
// aip.dev/not-precedent: UpdateWorkerBuildIdOrdering RPC doesn't follow Google API format. --)
|
376
390
|
rpc UpdateWorkerBuildIdOrdering (UpdateWorkerBuildIdOrderingRequest) returns (UpdateWorkerBuildIdOrderingResponse) {}
|
377
|
-
//
|
391
|
+
// Fetches the worker build id versioning graph for some task queue.
|
378
392
|
rpc GetWorkerBuildIdOrdering (GetWorkerBuildIdOrderingRequest) returns (GetWorkerBuildIdOrderingResponse) {}
|
379
393
|
|
380
394
|
// Invokes the specified update function on user workflow code.
|
data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto
CHANGED
@@ -119,6 +119,8 @@ message StartWorkflow {
|
|
119
119
|
temporal.api.common.v1.Memo memo = 21;
|
120
120
|
// Search attributes created/updated when this workflow was started
|
121
121
|
temporal.api.common.v1.SearchAttributes search_attributes = 22;
|
122
|
+
// When the workflow execution started event was first written
|
123
|
+
google.protobuf.Timestamp start_time = 23;
|
122
124
|
}
|
123
125
|
|
124
126
|
/// Notify a workflow that a timer has fired
|
data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto
CHANGED
@@ -35,6 +35,7 @@ message WorkflowCommand {
|
|
35
35
|
ScheduleLocalActivity schedule_local_activity = 16;
|
36
36
|
RequestCancelLocalActivity request_cancel_local_activity = 17;
|
37
37
|
UpsertWorkflowSearchAttributes upsert_workflow_search_attributes = 18;
|
38
|
+
ModifyWorkflowProperties modify_workflow_properties = 19;
|
38
39
|
}
|
39
40
|
}
|
40
41
|
|
@@ -54,7 +55,6 @@ message ScheduleActivity {
|
|
54
55
|
uint32 seq = 1;
|
55
56
|
string activity_id = 2;
|
56
57
|
string activity_type = 3;
|
57
|
-
string namespace = 4;
|
58
58
|
// The name of the task queue to place this activity request in
|
59
59
|
string task_queue = 5;
|
60
60
|
map<string, temporal.api.common.v1.Payload> headers = 6;
|
@@ -295,3 +295,10 @@ message UpsertWorkflowSearchAttributes {
|
|
295
295
|
/// value?
|
296
296
|
map<string, temporal.api.common.v1.Payload> search_attributes = 1;
|
297
297
|
}
|
298
|
+
|
299
|
+
message ModifyWorkflowProperties {
|
300
|
+
// If set, update the workflow memo with the provided values. The values will be merged with
|
301
|
+
// the existing memo. If the user wants to delete values, a default/empty Payload should be
|
302
|
+
// used as the value for the key being deleted.
|
303
|
+
temporal.api.common.v1.Memo upserted_memo = 1;
|
304
|
+
}
|
data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto
CHANGED
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/testservice/v1;testservice";
|
|
28
28
|
option java_package = "io.temporal.api.testservice.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "RequestResponseProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::TestService::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.TestService.V1";
|
33
33
|
|
34
34
|
import "google/protobuf/duration.proto";
|
35
35
|
import "google/protobuf/timestamp.proto";
|
@@ -28,8 +28,8 @@ option go_package = "go.temporal.io/api/testservice/v1;testservice";
|
|
28
28
|
option java_package = "io.temporal.api.testservice.v1";
|
29
29
|
option java_multiple_files = true;
|
30
30
|
option java_outer_classname = "ServiceProto";
|
31
|
-
option ruby_package = "
|
32
|
-
option csharp_namespace = "
|
31
|
+
option ruby_package = "Temporalio::Api::TestService::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.TestService.V1";
|
33
33
|
|
34
34
|
import "temporal/api/testservice/v1/request_response.proto";
|
35
35
|
import "google/protobuf/empty.proto";
|
@@ -15,7 +15,7 @@ categories = ["development-tools"]
|
|
15
15
|
[dependencies]
|
16
16
|
async-trait = "0.1"
|
17
17
|
anyhow = "1.0"
|
18
|
-
base64 = "0.
|
18
|
+
base64 = "0.20"
|
19
19
|
crossbeam = "0.8"
|
20
20
|
derive_more = "0.99"
|
21
21
|
futures = "0.3"
|
@@ -28,7 +28,7 @@ tokio = { version = "1.1", features = ["rt", "rt-multi-thread", "parking_lot", "
|
|
28
28
|
tokio-util = { version = "0.7" }
|
29
29
|
tokio-stream = "0.1"
|
30
30
|
tonic = "0.8"
|
31
|
-
tracing =
|
31
|
+
tracing = "0.1"
|
32
32
|
|
33
33
|
[dependencies.temporal-sdk-core]
|
34
34
|
path = "../core"
|