temporalio 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +180 -7
- data/bridge/Cargo.lock +208 -76
- data/bridge/Cargo.toml +5 -2
- data/bridge/sdk-core/Cargo.toml +1 -1
- data/bridge/sdk-core/README.md +20 -10
- data/bridge/sdk-core/client/Cargo.toml +1 -1
- data/bridge/sdk-core/client/src/lib.rs +227 -59
- data/bridge/sdk-core/client/src/metrics.rs +17 -8
- data/bridge/sdk-core/client/src/raw.rs +13 -12
- data/bridge/sdk-core/client/src/retry.rs +132 -43
- data/bridge/sdk-core/core/Cargo.toml +28 -15
- data/bridge/sdk-core/core/benches/workflow_replay.rs +13 -10
- data/bridge/sdk-core/core/src/abstractions.rs +225 -36
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +217 -79
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +565 -34
- data/bridge/sdk-core/core/src/core_tests/queries.rs +247 -90
- data/bridge/sdk-core/core/src/core_tests/workers.rs +3 -5
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +1 -1
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +430 -67
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
- data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
- data/bridge/sdk-core/core/src/lib.rs +148 -34
- 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 +219 -140
- data/bridge/sdk-core/core/src/telemetry/mod.rs +326 -315
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +20 -14
- data/bridge/sdk-core/core/src/test_help/mod.rs +85 -21
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
- data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +364 -128
- data/bridge/sdk-core/core/src/worker/activities.rs +263 -170
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +23 -3
- data/bridge/sdk-core/core/src/worker/client.rs +48 -6
- data/bridge/sdk-core/core/src/worker/mod.rs +186 -75
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +13 -24
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +879 -226
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +101 -48
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +8 -12
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +90 -32
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +7 -10
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +6 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +160 -83
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +36 -54
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +179 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +104 -157
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +8 -12
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -13
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +10 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -11
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +395 -299
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +12 -20
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +33 -18
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1032 -374
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +525 -392
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
- data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +3 -6
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +456 -681
- data/bridge/sdk-core/core-api/Cargo.toml +6 -4
- data/bridge/sdk-core/core-api/src/errors.rs +1 -34
- data/bridge/sdk-core/core-api/src/lib.rs +7 -45
- data/bridge/sdk-core/core-api/src/telemetry.rs +141 -0
- data/bridge/sdk-core/core-api/src/worker.rs +27 -1
- 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/src/lib.rs +18 -15
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +1 -1
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
- 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/enums/v1/cluster.proto → build/tools.go} +7 -18
- 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 +15 -26
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +13 -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 -9
- 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 +10 -8
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +28 -2
- 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 +24 -19
- 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 +62 -26
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +4 -2
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +24 -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/protocol/v1/message.proto +57 -0
- 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/sdk/v1/task_complete_metadata.proto +63 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +4 -4
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +71 -6
- 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 +111 -36
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +19 -5
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +9 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +9 -1
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
- 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 +4 -3
- data/bridge/sdk-core/sdk/src/interceptors.rs +36 -3
- data/bridge/sdk-core/sdk/src/lib.rs +94 -25
- data/bridge/sdk-core/sdk/src/workflow_context.rs +13 -2
- data/bridge/sdk-core/sdk/src/workflow_future.rs +10 -13
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
- data/bridge/sdk-core/sdk-core-protos/build.rs +36 -2
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +164 -104
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +27 -23
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +252 -74
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
- data/bridge/sdk-core/test-utils/Cargo.toml +4 -1
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
- data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
- data/bridge/sdk-core/test-utils/src/lib.rs +161 -50
- data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
- data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
- data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
- data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +10 -5
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +239 -0
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -60
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +151 -116
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +54 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +115 -24
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +27 -18
- data/bridge/sdk-core/tests/main.rs +8 -16
- data/bridge/sdk-core/tests/runner.rs +75 -36
- data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
- data/bridge/src/connection.rs +117 -82
- data/bridge/src/lib.rs +356 -42
- data/bridge/src/runtime.rs +10 -3
- data/bridge/src/test_server.rs +153 -0
- data/bridge/src/worker.rs +133 -9
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +8 -6
- data/lib/gen/temporal/api/command/v1/message_pb.rb +10 -16
- data/lib/gen/temporal/api/common/v1/message_pb.rb +5 -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 -3
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +2 -1
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +5 -4
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +9 -1
- 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 +7 -10
- 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 +34 -25
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +2 -1
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +14 -51
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +1 -1
- data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
- 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/sdk/v1/task_complete_metadata_pb.rb +23 -0
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +2 -2
- data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
- data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
- data/lib/gen/temporal/api/update/v1/message_pb.rb +49 -3
- 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 +47 -20
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +1 -1
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +28 -21
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +32 -24
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
- data/lib/temporalio/activity/context.rb +102 -0
- data/lib/temporalio/activity/info.rb +67 -0
- data/lib/temporalio/activity.rb +85 -0
- data/lib/temporalio/bridge/connect_options.rb +15 -0
- data/lib/temporalio/bridge/error.rb +8 -0
- data/lib/temporalio/bridge/retry_config.rb +24 -0
- data/lib/temporalio/bridge/tls_options.rb +19 -0
- data/lib/temporalio/bridge.rb +14 -0
- data/lib/{temporal → temporalio}/client/implementation.rb +57 -56
- data/lib/{temporal → temporalio}/client/workflow_handle.rb +35 -35
- data/lib/{temporal → temporalio}/client.rb +19 -32
- data/lib/temporalio/connection/retry_config.rb +44 -0
- data/lib/temporalio/connection/service.rb +20 -0
- data/lib/temporalio/connection/test_service.rb +92 -0
- data/lib/temporalio/connection/tls_options.rb +51 -0
- data/lib/temporalio/connection/workflow_service.rb +731 -0
- data/lib/temporalio/connection.rb +86 -0
- 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/temporalio/interceptor/activity_inbound.rb +22 -0
- data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
- data/lib/{temporal → temporalio}/interceptor/chain.rb +7 -6
- data/lib/{temporal → temporalio}/interceptor/client.rb +27 -2
- data/lib/temporalio/interceptor.rb +22 -0
- 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 +17 -7
- data/lib/{temporal → temporalio}/retry_state.rb +1 -1
- data/lib/temporalio/runtime.rb +25 -0
- data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
- data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
- data/lib/temporalio/testing/workflow_environment.rb +112 -0
- data/lib/temporalio/testing.rb +175 -0
- data/lib/{temporal → temporalio}/timeout_type.rb +2 -2
- data/lib/temporalio/version.rb +3 -0
- data/lib/temporalio/worker/activity_runner.rb +114 -0
- data/lib/temporalio/worker/activity_worker.rb +164 -0
- data/lib/temporalio/worker/reactor.rb +46 -0
- data/lib/temporalio/worker/runner.rb +63 -0
- data/lib/temporalio/worker/sync_worker.rb +124 -0
- data/lib/temporalio/worker/thread_pool_executor.rb +51 -0
- data/lib/temporalio/worker.rb +204 -0
- data/lib/temporalio/workflow/async.rb +46 -0
- data/lib/{temporal → temporalio}/workflow/execution_info.rb +4 -4
- data/lib/{temporal → temporalio}/workflow/execution_status.rb +1 -1
- data/lib/temporalio/workflow/future.rb +138 -0
- data/lib/{temporal → temporalio}/workflow/id_reuse_policy.rb +6 -6
- data/lib/temporalio/workflow/info.rb +76 -0
- data/lib/{temporal → temporalio}/workflow/query_reject_condition.rb +5 -5
- data/lib/temporalio.rb +12 -3
- data/temporalio.gemspec +11 -6
- metadata +137 -64
- data/bridge/sdk-core/Cargo.lock +0 -2606
- 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/bridge.so +0 -0
- 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/sdk/core/bridge/bridge_pb.rb +0 -222
- data/lib/temporal/bridge.rb +0 -14
- data/lib/temporal/connection.rb +0 -736
- 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,19 +28,84 @@ option go_package = "go.temporal.io/api/update/v1;update";
|
|
28
28
|
option java_package = "io.temporal.api.update.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::Update::V1";
|
32
|
+
option csharp_namespace = "Temporalio.Api.Update.V1";
|
33
33
|
|
34
34
|
import "temporal/api/common/v1/message.proto";
|
35
|
+
import "temporal/api/enums/v1/update.proto";
|
36
|
+
import "temporal/api/failure/v1/message.proto";
|
35
37
|
|
36
|
-
|
37
|
-
|
38
|
+
// Sepcifies to the gRPC server how the client wants the UpdateWorkflowExecution
|
39
|
+
// call to wait before returning control to the caller.
|
40
|
+
message WaitPolicy {
|
41
|
+
|
42
|
+
// Indicates the update lifecycle stage that the gRPC call should wait for
|
43
|
+
// before returning.
|
44
|
+
temporal.api.enums.v1.UpdateWorkflowExecutionLifecycleStage lifecycle_stage = 1;
|
45
|
+
}
|
46
|
+
|
47
|
+
// The data needed by a client to refer to an previously invoked workflow
|
48
|
+
// execution update process.
|
49
|
+
message UpdateRef {
|
50
|
+
temporal.api.common.v1.WorkflowExecution workflow_execution = 1;
|
51
|
+
string update_id = 2;
|
52
|
+
}
|
53
|
+
|
54
|
+
// The outcome of a workflow update - success or failure.
|
55
|
+
message Outcome {
|
56
|
+
oneof value {
|
57
|
+
temporal.api.common.v1.Payloads success = 1;
|
58
|
+
temporal.api.failure.v1.Failure failure = 2;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
// Metadata about a workflow execution update.
|
63
|
+
message Meta {
|
64
|
+
// An ID with workflow-scoped uniqueness for this update
|
65
|
+
string update_id = 1;
|
66
|
+
|
67
|
+
// A string identifying the agent that requested this update.
|
68
|
+
string identity = 2;
|
69
|
+
}
|
70
|
+
|
71
|
+
message Input {
|
72
|
+
// Headers that are passed with the update from the requesting entity.
|
38
73
|
// These can include things like auth or tracing tokens.
|
39
74
|
temporal.api.common.v1.Header header = 1;
|
40
75
|
|
41
|
-
// The name of the
|
76
|
+
// The name of the input handler to invoke on the target workflow
|
42
77
|
string name = 2;
|
43
78
|
|
44
|
-
// The arguments to pass to the named
|
79
|
+
// The arguments to pass to the named handler.
|
45
80
|
temporal.api.common.v1.Payloads args = 3;
|
46
81
|
}
|
82
|
+
|
83
|
+
// The client request that triggers a workflow execution update
|
84
|
+
message Request {
|
85
|
+
Meta meta = 1;
|
86
|
+
Input input = 2;
|
87
|
+
}
|
88
|
+
|
89
|
+
// An update protocol message indicating that a workflow execution update has
|
90
|
+
// been rejected.
|
91
|
+
message Rejection {
|
92
|
+
string rejected_request_message_id = 1;
|
93
|
+
int64 rejected_request_sequencing_event_id = 2;
|
94
|
+
Request rejected_request = 3;
|
95
|
+
temporal.api.failure.v1.Failure failure = 4;
|
96
|
+
}
|
97
|
+
|
98
|
+
// An update protocol message indicating that a workflow execution update has
|
99
|
+
// been accepted (i.e. passed the worker-side validation phase).
|
100
|
+
message Acceptance {
|
101
|
+
string accepted_request_message_id = 1;
|
102
|
+
int64 accepted_request_sequencing_event_id = 2;
|
103
|
+
Request accepted_request = 3;
|
104
|
+
}
|
105
|
+
|
106
|
+
// An update protocol message indicating that a workflow execution update has
|
107
|
+
// completed with the contained outcome.
|
108
|
+
message Response {
|
109
|
+
Meta meta = 1;
|
110
|
+
Outcome outcome = 2;
|
111
|
+
}
|
@@ -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";
|
@@ -39,13 +39,13 @@ import "temporal/api/enums/v1/common.proto";
|
|
39
39
|
import "temporal/api/enums/v1/query.proto";
|
40
40
|
import "temporal/api/enums/v1/reset.proto";
|
41
41
|
import "temporal/api/enums/v1/task_queue.proto";
|
42
|
-
import "temporal/api/enums/v1/update.proto";
|
43
42
|
import "temporal/api/common/v1/message.proto";
|
44
43
|
import "temporal/api/history/v1/message.proto";
|
45
44
|
import "temporal/api/workflow/v1/message.proto";
|
46
45
|
import "temporal/api/command/v1/message.proto";
|
47
46
|
import "temporal/api/failure/v1/message.proto";
|
48
47
|
import "temporal/api/filter/v1/message.proto";
|
48
|
+
import "temporal/api/protocol/v1/message.proto";
|
49
49
|
import "temporal/api/namespace/v1/message.proto";
|
50
50
|
import "temporal/api/query/v1/message.proto";
|
51
51
|
import "temporal/api/replication/v1/message.proto";
|
@@ -54,6 +54,7 @@ import "temporal/api/taskqueue/v1/message.proto";
|
|
54
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
|
+
import "temporal/api/sdk/v1/task_complete_metadata.proto";
|
57
58
|
|
58
59
|
import "google/protobuf/duration.proto";
|
59
60
|
import "google/protobuf/timestamp.proto";
|
@@ -168,10 +169,25 @@ message StartWorkflowExecutionRequest {
|
|
168
169
|
temporal.api.common.v1.Memo memo = 14;
|
169
170
|
temporal.api.common.v1.SearchAttributes search_attributes = 15;
|
170
171
|
temporal.api.common.v1.Header header = 16;
|
172
|
+
// Request to get the first workflow task inline in the response bypassing matching service and worker polling.
|
173
|
+
// If set to `true` the caller is expected to have a worker available and capable of processing the task.
|
174
|
+
// The returned task will be marked as started and is expected to be completed by the specified
|
175
|
+
// `workflow_task_timeout`.
|
176
|
+
bool request_eager_execution = 17;
|
177
|
+
// These values will be available as ContinuedFailure and LastCompletionResult in the
|
178
|
+
// WorkflowExecutionStarted event and through SDKs. The are currently only used by the
|
179
|
+
// server itself (for the schedules feature) and are not intended to be exposed in
|
180
|
+
// StartWorkflowExecution.
|
181
|
+
temporal.api.failure.v1.Failure continued_failure = 18;
|
182
|
+
temporal.api.common.v1.Payloads last_completion_result = 19;
|
171
183
|
}
|
172
184
|
|
173
185
|
message StartWorkflowExecutionResponse {
|
174
186
|
string run_id = 1;
|
187
|
+
// When `request_eager_execution` is set on the `StartWorkflowExecutionRequest`, the server - if supported - will
|
188
|
+
// return the first workflow task to be eagerly executed.
|
189
|
+
// The caller is expected to have a worker available to process the task.
|
190
|
+
PollWorkflowTaskQueueResponse eager_workflow_task = 2;
|
175
191
|
}
|
176
192
|
|
177
193
|
message GetWorkflowExecutionHistoryRequest {
|
@@ -222,11 +238,11 @@ message PollWorkflowTaskQueueRequest {
|
|
222
238
|
// "checksum" in this field name isn't very accurate, it should be though of as an id.
|
223
239
|
string binary_checksum = 4;
|
224
240
|
// 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
|
241
|
+
// receive tasks that are considered compatible with the version provided.
|
226
242
|
// Doing so only makes sense in conjunction with the `UpdateWorkerBuildIdOrdering` API.
|
227
|
-
// When
|
228
|
-
// `binary_checksum`.
|
229
|
-
|
243
|
+
// When `worker_versioning_id` has a `worker_build_id`, and `binary_checksum` is not
|
244
|
+
// set, that value should also be considered as the `binary_checksum`.
|
245
|
+
temporal.api.taskqueue.v1.VersionId worker_versioning_id = 5;
|
230
246
|
}
|
231
247
|
|
232
248
|
message PollWorkflowTaskQueueResponse {
|
@@ -267,6 +283,8 @@ message PollWorkflowTaskQueueResponse {
|
|
267
283
|
// Queries that should be executed after applying the history in this task. Responses should be
|
268
284
|
// attached to `RespondWorkflowTaskCompletedRequest::query_results`
|
269
285
|
map<string, temporal.api.query.v1.WorkflowQuery> queries = 14;
|
286
|
+
// Protocol messages piggybacking on a WFT as a transport
|
287
|
+
repeated temporal.api.protocol.v1.Message messages = 15;
|
270
288
|
}
|
271
289
|
|
272
290
|
message RespondWorkflowTaskCompletedRequest {
|
@@ -292,6 +310,18 @@ message RespondWorkflowTaskCompletedRequest {
|
|
292
310
|
// Responses to the `queries` field in the task being responded to
|
293
311
|
map<string, temporal.api.query.v1.WorkflowQueryResult> query_results = 8;
|
294
312
|
string namespace = 9;
|
313
|
+
// If using versioning, worker should send the same id here that it used to
|
314
|
+
// poll for the workflow task.
|
315
|
+
// When `worker_versioning_id` has a `worker_build_id`, and `binary_checksum` is not
|
316
|
+
// set, that value should also be considered as the `binary_checksum`.
|
317
|
+
temporal.api.taskqueue.v1.VersionId worker_versioning_id = 10;
|
318
|
+
// Protocol messages piggybacking on a WFT as a transport
|
319
|
+
repeated temporal.api.protocol.v1.Message messages = 11;
|
320
|
+
// Data the SDK wishes to record for itself, but server need not interpret, and does not
|
321
|
+
// directly impact workflow state.
|
322
|
+
temporal.api.sdk.v1.WorkflowTaskCompletedMetadata sdk_metadata = 12;
|
323
|
+
// Local usage data collected for metering
|
324
|
+
temporal.api.common.v1.MeteringMetadata metering_metadata = 13;
|
295
325
|
}
|
296
326
|
|
297
327
|
message RespondWorkflowTaskCompletedResponse {
|
@@ -299,6 +329,8 @@ message RespondWorkflowTaskCompletedResponse {
|
|
299
329
|
PollWorkflowTaskQueueResponse workflow_task = 1;
|
300
330
|
// See `ScheduleActivityTaskCommandAttributes::request_start`
|
301
331
|
repeated PollActivityTaskQueueResponse activity_tasks = 2;
|
332
|
+
|
333
|
+
int64 reset_history_event_id = 3;
|
302
334
|
}
|
303
335
|
|
304
336
|
message RespondWorkflowTaskFailedRequest {
|
@@ -314,6 +346,8 @@ message RespondWorkflowTaskFailedRequest {
|
|
314
346
|
// Worker process' unique binary id
|
315
347
|
string binary_checksum = 5;
|
316
348
|
string namespace = 6;
|
349
|
+
// Protocol messages piggybacking on a WFT as a transport
|
350
|
+
repeated temporal.api.protocol.v1.Message messages = 7;
|
317
351
|
}
|
318
352
|
|
319
353
|
message RespondWorkflowTaskFailedResponse {
|
@@ -326,9 +360,9 @@ message PollActivityTaskQueueRequest {
|
|
326
360
|
string identity = 3;
|
327
361
|
temporal.api.taskqueue.v1.TaskQueueMetadata task_queue_metadata = 4;
|
328
362
|
// 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
|
363
|
+
// receive tasks that are considered compatible with the version provided.
|
330
364
|
// Doing so only makes sense in conjunction with the `UpdateWorkerBuildIdOrdering` API.
|
331
|
-
|
365
|
+
temporal.api.taskqueue.v1.VersionId worker_versioning_id = 5;
|
332
366
|
}
|
333
367
|
|
334
368
|
message PollActivityTaskQueueResponse {
|
@@ -630,6 +664,19 @@ message TerminateWorkflowExecutionRequest {
|
|
630
664
|
message TerminateWorkflowExecutionResponse {
|
631
665
|
}
|
632
666
|
|
667
|
+
// (-- api-linter: core::0135::request-unknown-fields=disabled
|
668
|
+
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
669
|
+
// (-- api-linter: core::0135::request-name-required=disabled
|
670
|
+
// aip.dev/not-precedent: DeleteNamespace RPC doesn't follow Google API format. --)
|
671
|
+
message DeleteWorkflowExecutionRequest {
|
672
|
+
string namespace = 1;
|
673
|
+
// Workflow Execution to delete. If run_id is not specified, the latest one is used.
|
674
|
+
temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
|
675
|
+
}
|
676
|
+
|
677
|
+
message DeleteWorkflowExecutionResponse {
|
678
|
+
}
|
679
|
+
|
633
680
|
message ListOpenWorkflowExecutionsRequest {
|
634
681
|
string namespace = 1;
|
635
682
|
int32 maximum_page_size = 2;
|
@@ -821,6 +868,21 @@ message GetSystemInfoResponse {
|
|
821
868
|
|
822
869
|
// True if server uses protos that include temporal.api.failure.v1.Failure.encoded_attributes
|
823
870
|
bool encoded_failure_attributes = 5;
|
871
|
+
|
872
|
+
// True if server supports dispatching Workflow and Activity tasks based on a worker's build_id
|
873
|
+
// (see:
|
874
|
+
// https://github.com/temporalio/proposals/blob/a123af3b559f43db16ea6dd31870bfb754c4dc5e/versioning/worker-versions.md)
|
875
|
+
bool build_id_based_versioning = 6;
|
876
|
+
|
877
|
+
// True if server supports upserting workflow memo
|
878
|
+
bool upsert_memo = 7;
|
879
|
+
|
880
|
+
// True if server supports eager workflow task dispatching for the StartWorkflowExecution API
|
881
|
+
bool eager_workflow_start = 8;
|
882
|
+
|
883
|
+
// True if the server knows about the sdk metadata field on WFT completions and will record
|
884
|
+
// it in history
|
885
|
+
bool sdk_metadata = 9;
|
824
886
|
}
|
825
887
|
}
|
826
888
|
|
@@ -874,6 +936,9 @@ message DescribeScheduleRequest {
|
|
874
936
|
message DescribeScheduleResponse {
|
875
937
|
// The complete current schedule details. This may not match the schedule as
|
876
938
|
// created because:
|
939
|
+
// - some types of schedule specs may get compiled into others (e.g.
|
940
|
+
// CronString into StructuredCalendarSpec)
|
941
|
+
// - some unspecified fields may be replaced by defaults
|
877
942
|
// - some fields in the state are modified automatically
|
878
943
|
// - the schedule may have been modified by UpdateSchedule or PatchSchedule
|
879
944
|
temporal.api.schedule.v1.Schedule schedule = 1;
|
@@ -1018,58 +1083,60 @@ message GetWorkerBuildIdOrderingResponse {
|
|
1018
1083
|
|
1019
1084
|
// (-- api-linter: core::0134=disabled
|
1020
1085
|
// aip.dev/not-precedent: Update RPCs don't follow Google API format. --)
|
1021
|
-
message
|
1022
|
-
// A unique ID for this logical request
|
1023
|
-
string request_id = 1;
|
1024
|
-
|
1025
|
-
// The manner in which the update result will be accessed.
|
1026
|
-
// This field requires a non-default value; the default value of the enum
|
1027
|
-
// will result in an error.
|
1028
|
-
temporal.api.enums.v1.WorkflowUpdateResultAccessStyle result_access_style = 2;
|
1029
|
-
|
1086
|
+
message UpdateWorkflowExecutionRequest {
|
1030
1087
|
// The namespace name of the target workflow
|
1031
|
-
string namespace =
|
1088
|
+
string namespace = 1;
|
1032
1089
|
// The target workflow id and (optionally) a specific run thereof
|
1033
1090
|
// (-- api-linter: core::0203::optional=disabled
|
1034
1091
|
// aip.dev/not-precedent: false positive triggered by the word "optional" --)
|
1035
|
-
temporal.api.common.v1.WorkflowExecution workflow_execution =
|
1092
|
+
temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
|
1036
1093
|
// If set, this call will error if the most recent (if no run id is set on
|
1037
1094
|
// `workflow_execution`), or specified (if it is) workflow execution is not
|
1038
1095
|
// part of the same execution chain as this id.
|
1039
|
-
string first_execution_run_id =
|
1096
|
+
string first_execution_run_id = 3;
|
1097
|
+
|
1098
|
+
// Describes when this request should return - basically whether the
|
1099
|
+
// update is synchronous, asynchronous, or somewhere in between.
|
1100
|
+
temporal.api.update.v1.WaitPolicy wait_policy = 4;
|
1040
1101
|
|
1041
|
-
// The
|
1042
|
-
//
|
1043
|
-
temporal.api.update.v1.
|
1102
|
+
// The request information that will be delivered all the way down to the
|
1103
|
+
// workflow execution.
|
1104
|
+
temporal.api.update.v1.Request request = 5;
|
1044
1105
|
}
|
1045
1106
|
|
1046
|
-
message
|
1047
|
-
//
|
1048
|
-
|
1049
|
-
|
1050
|
-
// The
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
}
|
1107
|
+
message UpdateWorkflowExecutionResponse {
|
1108
|
+
// Enough information for subsequent poll calls if needed. Never null.
|
1109
|
+
temporal.api.update.v1.UpdateRef update_ref = 1;
|
1110
|
+
|
1111
|
+
// The outcome of the update if and only if the workflow execution update
|
1112
|
+
// has completed. If this response is being returned before the update has
|
1113
|
+
// completed then this field will not be set.
|
1114
|
+
temporal.api.update.v1.Outcome outcome = 2;
|
1055
1115
|
}
|
1056
1116
|
|
1057
1117
|
message StartBatchOperationRequest {
|
1058
1118
|
// Namespace that contains the batch operation
|
1059
1119
|
string namespace = 1;
|
1060
|
-
// Visibility query defines the the group of workflow to
|
1120
|
+
// Visibility query defines the the group of workflow to apply the batch operation
|
1121
|
+
// This field and Executions are mutually exclusive
|
1061
1122
|
string visibility_query = 2;
|
1123
|
+
// Job ID defines the unique ID for the batch job
|
1124
|
+
string job_id = 3;
|
1125
|
+
// Reason to perform the batch operation
|
1126
|
+
string reason = 4;
|
1127
|
+
// Executions to apply the batch operation
|
1128
|
+
// This field and VisibilityQuery are mutually exclusive
|
1129
|
+
repeated temporal.api.common.v1.WorkflowExecution executions = 5;
|
1062
1130
|
// Operation input
|
1063
1131
|
oneof operation {
|
1064
1132
|
temporal.api.batch.v1.BatchOperationTermination termination_operation = 10;
|
1065
1133
|
temporal.api.batch.v1.BatchOperationSignal signal_operation = 11;
|
1066
1134
|
temporal.api.batch.v1.BatchOperationCancellation cancellation_operation = 12;
|
1135
|
+
temporal.api.batch.v1.BatchOperationDeletion deletion_operation = 13;
|
1067
1136
|
}
|
1068
1137
|
}
|
1069
1138
|
|
1070
1139
|
message StartBatchOperationResponse {
|
1071
|
-
// Batch job id
|
1072
|
-
string job_id = 1;
|
1073
1140
|
}
|
1074
1141
|
|
1075
1142
|
message StopBatchOperationRequest {
|
@@ -1077,6 +1144,10 @@ message StopBatchOperationRequest {
|
|
1077
1144
|
string namespace = 1;
|
1078
1145
|
// Batch job id
|
1079
1146
|
string job_id = 2;
|
1147
|
+
// Reason to stop a batch operation
|
1148
|
+
string reason = 3;
|
1149
|
+
// Identity of the operator
|
1150
|
+
string identity = 4;
|
1080
1151
|
}
|
1081
1152
|
|
1082
1153
|
message StopBatchOperationResponse {
|
@@ -1106,6 +1177,10 @@ message DescribeBatchOperationResponse {
|
|
1106
1177
|
int64 complete_operation_count = 7;
|
1107
1178
|
// Failure operation count
|
1108
1179
|
int64 failure_operation_count = 8;
|
1180
|
+
// Identity indicates the operator identity
|
1181
|
+
string identity = 9;
|
1182
|
+
// Reason indicates the reason to stop a operation
|
1183
|
+
string reason = 10;
|
1109
1184
|
}
|
1110
1185
|
|
1111
1186
|
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,18 +380,21 @@ 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.
|
381
395
|
// (-- api-linter: core::0134=disabled
|
382
|
-
// aip.dev/not-precedent:
|
383
|
-
rpc
|
396
|
+
// aip.dev/not-precedent: UpdateWorkflowExecution doesn't follow Google API format --)
|
397
|
+
rpc UpdateWorkflowExecution(UpdateWorkflowExecutionRequest) returns (UpdateWorkflowExecutionResponse) {
|
384
398
|
}
|
385
399
|
|
386
400
|
// StartBatchOperation starts a new batch operation
|
@@ -4,6 +4,7 @@ syntax = "proto3";
|
|
4
4
|
* Definitions of the different activity tasks returned from [crate::Core::poll_task].
|
5
5
|
*/
|
6
6
|
package coresdk.activity_task;
|
7
|
+
option ruby_package = "Temporalio::Bridge::Api::ActivityTask";
|
7
8
|
|
8
9
|
import "google/protobuf/duration.proto";
|
9
10
|
import "google/protobuf/timestamp.proto";
|
@@ -1,6 +1,7 @@
|
|
1
1
|
syntax = "proto3";
|
2
2
|
|
3
3
|
package coresdk;
|
4
|
+
option ruby_package = "Temporalio::Bridge::Api::CoreInterface";
|
4
5
|
|
5
6
|
// Note: Intellij will think the Google imports don't work because of the slightly odd nature of
|
6
7
|
// the include paths. You can make it work by going to the "Protobuf Support" settings section
|
data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto
CHANGED
@@ -5,6 +5,7 @@ syntax = "proto3";
|
|
5
5
|
* lang SDK applies these activation jobs to drive workflows.
|
6
6
|
*/
|
7
7
|
package coresdk.workflow_activation;
|
8
|
+
option ruby_package = "Temporalio::Bridge::Api::WorkflowActivation";
|
8
9
|
|
9
10
|
import "google/protobuf/timestamp.proto";
|
10
11
|
import "google/protobuf/duration.proto";
|
@@ -30,6 +31,10 @@ message WorkflowActivation {
|
|
30
31
|
uint32 history_length = 4;
|
31
32
|
/// The things to do upon activating the workflow
|
32
33
|
repeated WorkflowActivationJob jobs = 5;
|
34
|
+
// Internal flags which are available for use by lang. If `is_replaying` is false, all
|
35
|
+
// internal flags may be used. This is not a delta - all previously used flags always
|
36
|
+
// appear since this representation is cheap.
|
37
|
+
repeated uint32 available_internal_flags = 6;
|
33
38
|
}
|
34
39
|
|
35
40
|
message WorkflowActivationJob {
|
@@ -119,6 +124,8 @@ message StartWorkflow {
|
|
119
124
|
temporal.api.common.v1.Memo memo = 21;
|
120
125
|
// Search attributes created/updated when this workflow was started
|
121
126
|
temporal.api.common.v1.SearchAttributes search_attributes = 22;
|
127
|
+
// When the workflow execution started event was first written
|
128
|
+
google.protobuf.Timestamp start_time = 23;
|
122
129
|
}
|
123
130
|
|
124
131
|
/// Notify a workflow that a timer has fired
|
@@ -256,6 +263,8 @@ message RemoveFromCache {
|
|
256
263
|
// There was some fatal error processing the workflow, typically an internal error, but
|
257
264
|
// can also happen if then network drops out while paginating. Check message string.
|
258
265
|
FATAL = 8;
|
266
|
+
// Something went wrong attempting to fetch more history events.
|
267
|
+
PAGINATION_OR_HISTORY_FETCH = 9;
|
259
268
|
}
|
260
269
|
EvictionReason reason = 2;
|
261
270
|
}
|
data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto
CHANGED
@@ -6,6 +6,7 @@ syntax = "proto3";
|
|
6
6
|
* activation.
|
7
7
|
*/
|
8
8
|
package coresdk.workflow_commands;
|
9
|
+
option ruby_package = "Temporalio::Bridge::Api::WorkflowCommands";
|
9
10
|
|
10
11
|
import "google/protobuf/duration.proto";
|
11
12
|
import "google/protobuf/timestamp.proto";
|
@@ -35,6 +36,7 @@ message WorkflowCommand {
|
|
35
36
|
ScheduleLocalActivity schedule_local_activity = 16;
|
36
37
|
RequestCancelLocalActivity request_cancel_local_activity = 17;
|
37
38
|
UpsertWorkflowSearchAttributes upsert_workflow_search_attributes = 18;
|
39
|
+
ModifyWorkflowProperties modify_workflow_properties = 19;
|
38
40
|
}
|
39
41
|
}
|
40
42
|
|
@@ -54,7 +56,6 @@ message ScheduleActivity {
|
|
54
56
|
uint32 seq = 1;
|
55
57
|
string activity_id = 2;
|
56
58
|
string activity_type = 3;
|
57
|
-
string namespace = 4;
|
58
59
|
// The name of the task queue to place this activity request in
|
59
60
|
string task_queue = 5;
|
60
61
|
map<string, temporal.api.common.v1.Payload> headers = 6;
|
@@ -295,3 +296,10 @@ message UpsertWorkflowSearchAttributes {
|
|
295
296
|
/// value?
|
296
297
|
map<string, temporal.api.common.v1.Payload> search_attributes = 1;
|
297
298
|
}
|
299
|
+
|
300
|
+
message ModifyWorkflowProperties {
|
301
|
+
// If set, update the workflow memo with the provided values. The values will be merged with
|
302
|
+
// the existing memo. If the user wants to delete values, a default/empty Payload should be
|
303
|
+
// used as the value for the key being deleted.
|
304
|
+
temporal.api.common.v1.Memo upserted_memo = 1;
|
305
|
+
}
|
data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
syntax = "proto3";
|
2
2
|
|
3
3
|
package coresdk.workflow_completion;
|
4
|
+
option ruby_package = "Temporalio::Bridge::Api::WorkflowCompletion";
|
4
5
|
|
5
6
|
import "temporal/api/failure/v1/message.proto";
|
7
|
+
import "temporal/api/enums/v1/failed_cause.proto";
|
6
8
|
import "temporal/sdk/core/common/common.proto";
|
7
9
|
import "temporal/sdk/core/workflow_commands/workflow_commands.proto";
|
8
10
|
|
@@ -20,10 +22,14 @@ message WorkflowActivationCompletion {
|
|
20
22
|
message Success {
|
21
23
|
// A list of commands to send back to the temporal server
|
22
24
|
repeated workflow_commands.WorkflowCommand commands = 1;
|
25
|
+
// Any internal flags which the lang SDK used in the processing of this activation
|
26
|
+
repeated uint32 used_internal_flags = 6;
|
23
27
|
}
|
24
28
|
|
25
29
|
/// Failure to activate or execute a workflow
|
26
30
|
message Failure {
|
27
31
|
temporal.api.failure.v1.Failure failure = 1;
|
32
|
+
// Forces overriding the WFT failure cause
|
33
|
+
temporal.api.enums.v1.WorkflowTaskFailedCause force_cause = 2;
|
28
34
|
}
|
29
35
|
|
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";
|