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
@@ -0,0 +1,153 @@
|
|
1
|
+
use crate::runtime::Runtime;
|
2
|
+
use std::sync::Arc;
|
3
|
+
use temporal_sdk_core::ephemeral_server;
|
4
|
+
use thiserror::Error;
|
5
|
+
use tokio::runtime::Runtime as TokioRuntime;
|
6
|
+
|
7
|
+
#[derive(Error, Debug)]
|
8
|
+
pub enum TestServerError {
|
9
|
+
#[error(transparent)]
|
10
|
+
ConfigError(#[from] ephemeral_server::TestServerConfigBuilderError),
|
11
|
+
|
12
|
+
#[error(transparent)]
|
13
|
+
TemporaliteConfigError(#[from] ephemeral_server::TemporaliteConfigBuilderError),
|
14
|
+
|
15
|
+
#[error(transparent)]
|
16
|
+
Unknown(#[from] anyhow::Error),
|
17
|
+
}
|
18
|
+
|
19
|
+
pub struct TestServer {
|
20
|
+
core_server: ephemeral_server::EphemeralServer,
|
21
|
+
tokio_runtime: Arc<TokioRuntime>,
|
22
|
+
}
|
23
|
+
|
24
|
+
pub struct TestServerConfig {
|
25
|
+
pub existing_path: Option<String>,
|
26
|
+
pub sdk_name: String,
|
27
|
+
pub sdk_version: String,
|
28
|
+
pub download_version: String,
|
29
|
+
pub download_dir: Option<String>,
|
30
|
+
pub port: Option<u16>,
|
31
|
+
pub extra_args: Vec<String>,
|
32
|
+
}
|
33
|
+
|
34
|
+
pub struct TemporaliteConfig {
|
35
|
+
pub existing_path: Option<String>,
|
36
|
+
pub sdk_name: String,
|
37
|
+
pub sdk_version: String,
|
38
|
+
pub download_version: String,
|
39
|
+
pub download_dir: Option<String>,
|
40
|
+
pub namespace: String,
|
41
|
+
pub ip: String,
|
42
|
+
pub port: Option<u16>,
|
43
|
+
pub database_filename: Option<String>,
|
44
|
+
pub ui: bool,
|
45
|
+
pub log_format: String,
|
46
|
+
pub log_level: String,
|
47
|
+
pub extra_args: Vec<String>,
|
48
|
+
}
|
49
|
+
|
50
|
+
impl TestServer {
|
51
|
+
pub fn start(runtime: &Runtime, config: TestServerConfig) -> Result<TestServer, TestServerError> {
|
52
|
+
let config: ephemeral_server::TestServerConfig = config.try_into()?;
|
53
|
+
let core_server = runtime.tokio_runtime.block_on(config.start_server())?;
|
54
|
+
|
55
|
+
Ok(TestServer {
|
56
|
+
core_server,
|
57
|
+
tokio_runtime: runtime.tokio_runtime.clone(),
|
58
|
+
})
|
59
|
+
}
|
60
|
+
|
61
|
+
pub fn start_temporalite(runtime: &Runtime, config: TemporaliteConfig) -> Result<TestServer, TestServerError> {
|
62
|
+
let config: ephemeral_server::TemporaliteConfig = config.try_into()?;
|
63
|
+
let core_server = runtime.tokio_runtime.block_on(config.start_server())?;
|
64
|
+
|
65
|
+
// TODO: This needs further investigation, but for some reason without a short pause here
|
66
|
+
// the shutdown called immediately after will end up waiting for 10 seconds before the
|
67
|
+
// process dies. This might be related to Core's EphemeralServer not waiting long
|
68
|
+
// enough for the Temporalite to start before returning back the control to the SDK.
|
69
|
+
// Reported here — https://github.com/temporalio/cli/issues/79.
|
70
|
+
std::thread::sleep(std::time::Duration::from_millis(150));
|
71
|
+
|
72
|
+
Ok(TestServer {
|
73
|
+
core_server,
|
74
|
+
tokio_runtime: runtime.tokio_runtime.clone(),
|
75
|
+
})
|
76
|
+
}
|
77
|
+
|
78
|
+
pub fn has_test_service(&self) -> bool {
|
79
|
+
self.core_server.has_test_service
|
80
|
+
}
|
81
|
+
|
82
|
+
pub fn target(&self) -> String {
|
83
|
+
self.core_server.target.clone()
|
84
|
+
}
|
85
|
+
|
86
|
+
pub fn shutdown(&mut self) -> Result<(), TestServerError> {
|
87
|
+
self.tokio_runtime.block_on(self.core_server.shutdown())?;
|
88
|
+
|
89
|
+
Ok(())
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
fn ephemeral_exe(
|
94
|
+
existing_path: Option<String>,
|
95
|
+
sdk_name: String,
|
96
|
+
sdk_version: String,
|
97
|
+
download_version: String,
|
98
|
+
download_dir: Option<String>
|
99
|
+
) -> ephemeral_server::EphemeralExe {
|
100
|
+
if let Some(path) = existing_path {
|
101
|
+
ephemeral_server::EphemeralExe::ExistingPath(path)
|
102
|
+
} else {
|
103
|
+
let version =
|
104
|
+
if download_version == "default" {
|
105
|
+
ephemeral_server::EphemeralExeVersion::SDKDefault { sdk_name, sdk_version }
|
106
|
+
} else {
|
107
|
+
ephemeral_server::EphemeralExeVersion::Fixed(download_version)
|
108
|
+
};
|
109
|
+
|
110
|
+
ephemeral_server::EphemeralExe::CachedDownload { version, dest_dir: download_dir }
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
impl TryFrom<TestServerConfig> for ephemeral_server::TestServerConfig {
|
115
|
+
type Error = ephemeral_server::TestServerConfigBuilderError;
|
116
|
+
|
117
|
+
fn try_from(config: TestServerConfig) -> Result<Self, Self::Error> {
|
118
|
+
ephemeral_server::TestServerConfigBuilder::default()
|
119
|
+
.exe(ephemeral_exe(
|
120
|
+
config.existing_path,
|
121
|
+
config.sdk_name,
|
122
|
+
config.sdk_version,
|
123
|
+
config.download_version,
|
124
|
+
config.download_dir
|
125
|
+
))
|
126
|
+
.port(config.port)
|
127
|
+
.extra_args(config.extra_args)
|
128
|
+
.build()
|
129
|
+
}
|
130
|
+
}
|
131
|
+
|
132
|
+
impl TryFrom<TemporaliteConfig> for ephemeral_server::TemporaliteConfig {
|
133
|
+
type Error = ephemeral_server::TemporaliteConfigBuilderError;
|
134
|
+
|
135
|
+
fn try_from(config: TemporaliteConfig) -> Result<Self, Self::Error> {
|
136
|
+
ephemeral_server::TemporaliteConfigBuilder::default()
|
137
|
+
.exe(ephemeral_exe(
|
138
|
+
config.existing_path,
|
139
|
+
config.sdk_name,
|
140
|
+
config.sdk_version,
|
141
|
+
config.download_version,
|
142
|
+
config.download_dir
|
143
|
+
))
|
144
|
+
.namespace(config.namespace)
|
145
|
+
.ip(config.ip)
|
146
|
+
.port(config.port)
|
147
|
+
.db_filename(config.database_filename)
|
148
|
+
.ui(config.ui)
|
149
|
+
.log((config.log_format, config.log_level))
|
150
|
+
.extra_args(config.extra_args)
|
151
|
+
.build()
|
152
|
+
}
|
153
|
+
}
|
data/bridge/src/worker.rs
CHANGED
@@ -1,57 +1,84 @@
|
|
1
1
|
use crate::connection::Client;
|
2
2
|
use crate::runtime::{Callback, Command, Runtime};
|
3
3
|
use prost::Message;
|
4
|
-
use std::sync::Arc;
|
5
4
|
use std::sync::mpsc::Sender;
|
6
|
-
use
|
5
|
+
use std::sync::Arc;
|
6
|
+
use temporal_sdk_core::api::Worker as WorkerTrait;
|
7
|
+
use temporal_sdk_core_api::errors::{PollActivityError, PollWfError};
|
7
8
|
use temporal_sdk_core_api::worker::{WorkerConfigBuilder, WorkerConfigBuilderError};
|
9
|
+
use temporal_sdk_core_protos::coresdk::workflow_completion::WorkflowActivationCompletion;
|
10
|
+
use temporal_sdk_core_protos::coresdk::{ActivityHeartbeat, ActivityTaskCompletion};
|
8
11
|
use thiserror::Error;
|
9
|
-
use tokio::runtime::
|
12
|
+
use tokio::runtime::Runtime as TokioRuntime;
|
10
13
|
|
11
14
|
#[derive(Error, Debug)]
|
12
15
|
pub enum WorkerError {
|
13
16
|
#[error(transparent)]
|
14
17
|
EncodeError(#[from] prost::EncodeError),
|
15
18
|
|
19
|
+
#[error(transparent)]
|
20
|
+
DecodeError(#[from] prost::DecodeError),
|
21
|
+
|
16
22
|
#[error(transparent)]
|
17
23
|
InvalidWorkerOptions(#[from] WorkerConfigBuilderError),
|
18
24
|
|
19
25
|
#[error(transparent)]
|
20
26
|
UnableToPollActivityTask(#[from] temporal_sdk_core::api::errors::PollActivityError),
|
21
27
|
|
28
|
+
#[error(transparent)]
|
29
|
+
UnableToPollWorkflowActivation(#[from] temporal_sdk_core::api::errors::PollWfError),
|
30
|
+
|
31
|
+
#[error(transparent)]
|
32
|
+
UnableToCompleteActivityTask(#[from] temporal_sdk_core::api::errors::CompleteActivityError),
|
33
|
+
|
34
|
+
#[error(transparent)]
|
35
|
+
UnableToCompleteWorkflowActivation(#[from] temporal_sdk_core::api::errors::CompleteWfError),
|
36
|
+
|
22
37
|
#[error("Unable to send a request. Channel is closed")]
|
23
38
|
ChannelClosed(),
|
39
|
+
|
40
|
+
#[error("Worker has already been shutdown")]
|
41
|
+
WorkerHasBeenShutdown(),
|
42
|
+
|
43
|
+
#[error("Unexpected error: {0}")]
|
44
|
+
UnexpectedError(String),
|
45
|
+
|
46
|
+
#[error("Core worker is shutting down")]
|
47
|
+
Shutdown(),
|
24
48
|
}
|
25
49
|
|
26
50
|
pub type WorkerResult = Result<Vec<u8>, WorkerError>;
|
27
51
|
|
28
52
|
pub struct Worker {
|
29
|
-
core_worker: Arc<temporal_sdk_core::Worker
|
53
|
+
core_worker: Option<Arc<temporal_sdk_core::Worker>>,
|
30
54
|
tokio_runtime: Arc<TokioRuntime>,
|
31
55
|
callback_tx: Sender<Command>,
|
32
56
|
}
|
33
57
|
|
34
58
|
impl Worker {
|
35
59
|
// TODO: Extend this to include full worker config
|
36
|
-
pub fn new(runtime: &Runtime, client: &Client, namespace: &str, task_queue: &str) -> Result<Worker, WorkerError> {
|
60
|
+
pub fn new(runtime: &Runtime, client: &Client, namespace: &str, task_queue: &str, max_cached_workflows: u32, no_remote_activity: bool) -> Result<Worker, WorkerError> {
|
37
61
|
let config = WorkerConfigBuilder::default()
|
38
62
|
.namespace(namespace)
|
39
63
|
.task_queue(task_queue)
|
64
|
+
.worker_build_id("test-worker-build") // TODO: replace this with an actual build id
|
65
|
+
.max_cached_workflows(usize::try_from(max_cached_workflows).unwrap())
|
66
|
+
.no_remote_activities(no_remote_activity)
|
40
67
|
.build()?;
|
41
68
|
|
42
69
|
let core_worker = runtime.tokio_runtime.block_on(async move {
|
43
|
-
temporal_sdk_core::init_worker(config, client.clone())
|
44
|
-
});
|
70
|
+
temporal_sdk_core::init_worker(&runtime.core_runtime, config, client.clone())
|
71
|
+
}).expect("Failed to initialize Core Worker");
|
45
72
|
|
46
73
|
Ok(Worker {
|
47
|
-
core_worker: Arc::new(core_worker),
|
74
|
+
core_worker: Some(Arc::new(core_worker)),
|
48
75
|
tokio_runtime: runtime.tokio_runtime.clone(),
|
49
76
|
callback_tx: runtime.callback_tx.clone(),
|
50
77
|
})
|
51
78
|
}
|
52
79
|
|
53
80
|
pub fn poll_activity_task<F>(&self, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
|
54
|
-
let core_worker = self.core_worker.
|
81
|
+
let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
|
55
82
|
let callback_tx = self.callback_tx.clone();
|
56
83
|
|
57
84
|
self.tokio_runtime.spawn(async move {
|
@@ -62,6 +89,7 @@ impl Worker {
|
|
62
89
|
let bytes = task.encode_to_vec();
|
63
90
|
Box::new(move || callback(Ok(bytes)))
|
64
91
|
},
|
92
|
+
Err(PollActivityError::ShutDown) => Box::new(move || callback(Err(WorkerError::Shutdown()))),
|
65
93
|
Err(e) => Box::new(move || callback(Err(WorkerError::UnableToPollActivityTask(e))))
|
66
94
|
};
|
67
95
|
|
@@ -70,4 +98,100 @@ impl Worker {
|
|
70
98
|
|
71
99
|
Ok(())
|
72
100
|
}
|
101
|
+
|
102
|
+
pub fn complete_activity_task<F>(&self, bytes: Vec<u8>, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
|
103
|
+
let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
|
104
|
+
let callback_tx = self.callback_tx.clone();
|
105
|
+
let proto = ActivityTaskCompletion::decode(&*bytes)?;
|
106
|
+
|
107
|
+
self.tokio_runtime.spawn(async move {
|
108
|
+
let result = core_worker.complete_activity_task(proto).await;
|
109
|
+
|
110
|
+
let callback: Callback = match result {
|
111
|
+
Ok(()) => Box::new(move || callback(Ok(vec!()))),
|
112
|
+
Err(e) => Box::new(move || callback(Err(WorkerError::UnableToCompleteActivityTask(e))))
|
113
|
+
};
|
114
|
+
|
115
|
+
callback_tx.send(Command::RunCallback(callback)).expect("Unable to send a callback");
|
116
|
+
});
|
117
|
+
|
118
|
+
Ok(())
|
119
|
+
}
|
120
|
+
|
121
|
+
pub fn record_activity_heartbeat(&self, bytes: Vec<u8>) -> Result<(), WorkerError> {
|
122
|
+
let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
|
123
|
+
let proto = ActivityHeartbeat::decode(&*bytes)?;
|
124
|
+
|
125
|
+
core_worker.record_activity_heartbeat(proto);
|
126
|
+
|
127
|
+
Ok(())
|
128
|
+
}
|
129
|
+
|
130
|
+
pub fn poll_workflow_activation<F>(&self, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
|
131
|
+
let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
|
132
|
+
let callback_tx = self.callback_tx.clone();
|
133
|
+
|
134
|
+
self.tokio_runtime.spawn(async move {
|
135
|
+
let result = core_worker.poll_workflow_activation().await;
|
136
|
+
|
137
|
+
let callback: Callback = match result {
|
138
|
+
Ok(task) => {
|
139
|
+
let bytes = task.encode_to_vec();
|
140
|
+
Box::new(move || callback(Ok(bytes)))
|
141
|
+
},
|
142
|
+
Err(PollWfError::ShutDown) => Box::new(move || callback(Err(WorkerError::Shutdown()))),
|
143
|
+
Err(e) => Box::new(move || callback(Err(WorkerError::UnableToPollWorkflowActivation(e))))
|
144
|
+
};
|
145
|
+
|
146
|
+
callback_tx.send(Command::RunCallback(callback)).expect("Unable to send a callback");
|
147
|
+
});
|
148
|
+
|
149
|
+
Ok(())
|
150
|
+
}
|
151
|
+
|
152
|
+
pub fn complete_workflow_activation<F>(&self, bytes: Vec<u8>, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
|
153
|
+
let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
|
154
|
+
let callback_tx = self.callback_tx.clone();
|
155
|
+
let proto = WorkflowActivationCompletion::decode(&*bytes)?;
|
156
|
+
|
157
|
+
self.tokio_runtime.spawn(async move {
|
158
|
+
let result = core_worker.complete_workflow_activation(proto).await;
|
159
|
+
|
160
|
+
let callback: Callback = match result {
|
161
|
+
Ok(()) => Box::new(move || callback(Ok(vec!()))),
|
162
|
+
Err(e) => Box::new(move || callback(Err(WorkerError::UnableToCompleteWorkflowActivation(e))))
|
163
|
+
};
|
164
|
+
|
165
|
+
callback_tx.send(Command::RunCallback(callback)).expect("Unable to send a callback");
|
166
|
+
});
|
167
|
+
|
168
|
+
Ok(())
|
169
|
+
}
|
170
|
+
|
171
|
+
pub fn initiate_shutdown(&self) -> Result<(), WorkerError> {
|
172
|
+
let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
|
173
|
+
|
174
|
+
core_worker.initiate_shutdown();
|
175
|
+
|
176
|
+
Ok(())
|
177
|
+
}
|
178
|
+
|
179
|
+
pub fn finalize_shutdown(&mut self) -> Result<(), WorkerError> {
|
180
|
+
// Take the worker out of the option and leave None
|
181
|
+
let core_worker = self.core_worker.take().ok_or(WorkerError::WorkerHasBeenShutdown())?;
|
182
|
+
|
183
|
+
// By design, there should be no more task using the worker by the time the Ruby code calls finalize_shutdown.
|
184
|
+
// This should therefore be the very last reference remaining to the worker. This is a condition for try_unwrap to work.
|
185
|
+
let core_worker = Arc::try_unwrap(core_worker).map_err(|arc| {
|
186
|
+
WorkerError::UnexpectedError(format!(
|
187
|
+
"Can't finalize worker's shutdown because there are still active references to it (expected exactly 1 reference, but got {})",
|
188
|
+
Arc::strong_count(&arc)
|
189
|
+
))
|
190
|
+
})?;
|
191
|
+
|
192
|
+
self.tokio_runtime.block_on(async move {
|
193
|
+
core_worker.finalize_shutdown().await;
|
194
|
+
Ok(())
|
195
|
+
})
|
196
|
+
}
|
73
197
|
}
|
@@ -17,9 +17,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
17
17
|
optional :close_time, :message, 4, "google.protobuf.Timestamp"
|
18
18
|
end
|
19
19
|
add_message "temporal.api.batch.v1.BatchOperationTermination" do
|
20
|
-
optional :
|
21
|
-
optional :
|
22
|
-
optional :identity, :string, 3
|
20
|
+
optional :details, :message, 1, "temporal.api.common.v1.Payloads"
|
21
|
+
optional :identity, :string, 2
|
23
22
|
end
|
24
23
|
add_message "temporal.api.batch.v1.BatchOperationSignal" do
|
25
24
|
optional :signal, :string, 1
|
@@ -28,13 +27,15 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
28
27
|
optional :identity, :string, 4
|
29
28
|
end
|
30
29
|
add_message "temporal.api.batch.v1.BatchOperationCancellation" do
|
31
|
-
optional :
|
32
|
-
|
30
|
+
optional :identity, :string, 1
|
31
|
+
end
|
32
|
+
add_message "temporal.api.batch.v1.BatchOperationDeletion" do
|
33
|
+
optional :identity, :string, 1
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
36
37
|
|
37
|
-
module
|
38
|
+
module Temporalio
|
38
39
|
module Api
|
39
40
|
module Batch
|
40
41
|
module V1
|
@@ -42,6 +43,7 @@ module Temporal
|
|
42
43
|
BatchOperationTermination = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.batch.v1.BatchOperationTermination").msgclass
|
43
44
|
BatchOperationSignal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.batch.v1.BatchOperationSignal").msgclass
|
44
45
|
BatchOperationCancellation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.batch.v1.BatchOperationCancellation").msgclass
|
46
|
+
BatchOperationDeletion = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.batch.v1.BatchOperationDeletion").msgclass
|
45
47
|
end
|
46
48
|
end
|
47
49
|
end
|
@@ -7,7 +7,6 @@ require 'google/protobuf/duration_pb'
|
|
7
7
|
require 'dependencies/gogoproto/gogo_pb'
|
8
8
|
require 'temporal/api/enums/v1/workflow_pb'
|
9
9
|
require 'temporal/api/enums/v1/command_type_pb'
|
10
|
-
require 'temporal/api/enums/v1/update_pb'
|
11
10
|
require 'temporal/api/common/v1/message_pb'
|
12
11
|
require 'temporal/api/failure/v1/message_pb'
|
13
12
|
require 'temporal/api/taskqueue/v1/message_pb'
|
@@ -66,6 +65,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
66
65
|
add_message "temporal.api.command.v1.UpsertWorkflowSearchAttributesCommandAttributes" do
|
67
66
|
optional :search_attributes, :message, 1, "temporal.api.common.v1.SearchAttributes"
|
68
67
|
end
|
68
|
+
add_message "temporal.api.command.v1.ModifyWorkflowPropertiesCommandAttributes" do
|
69
|
+
optional :upserted_memo, :message, 1, "temporal.api.common.v1.Memo"
|
70
|
+
end
|
69
71
|
add_message "temporal.api.command.v1.RecordMarkerCommandAttributes" do
|
70
72
|
optional :marker_name, :string, 1
|
71
73
|
map :details, :string, :message, 2, "temporal.api.common.v1.Payloads"
|
@@ -106,16 +108,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
106
108
|
optional :memo, :message, 15, "temporal.api.common.v1.Memo"
|
107
109
|
optional :search_attributes, :message, 16, "temporal.api.common.v1.SearchAttributes"
|
108
110
|
end
|
109
|
-
add_message "temporal.api.command.v1.
|
110
|
-
optional :
|
111
|
-
end
|
112
|
-
add_message "temporal.api.command.v1.CompleteWorkflowUpdateCommandAttributes" do
|
113
|
-
optional :update_id, :string, 1
|
114
|
-
optional :durability_preference, :enum, 2, "temporal.api.enums.v1.WorkflowUpdateDurabilityPreference"
|
115
|
-
oneof :result do
|
116
|
-
optional :success, :message, 3, "temporal.api.common.v1.Payloads"
|
117
|
-
optional :failure, :message, 4, "temporal.api.failure.v1.Failure"
|
118
|
-
end
|
111
|
+
add_message "temporal.api.command.v1.ProtocolMessageCommandAttributes" do
|
112
|
+
optional :message_id, :string, 1
|
119
113
|
end
|
120
114
|
add_message "temporal.api.command.v1.Command" do
|
121
115
|
optional :command_type, :enum, 1, "temporal.api.enums.v1.CommandType"
|
@@ -133,14 +127,14 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
133
127
|
optional :start_child_workflow_execution_command_attributes, :message, 12, "temporal.api.command.v1.StartChildWorkflowExecutionCommandAttributes"
|
134
128
|
optional :signal_external_workflow_execution_command_attributes, :message, 13, "temporal.api.command.v1.SignalExternalWorkflowExecutionCommandAttributes"
|
135
129
|
optional :upsert_workflow_search_attributes_command_attributes, :message, 14, "temporal.api.command.v1.UpsertWorkflowSearchAttributesCommandAttributes"
|
136
|
-
optional :
|
137
|
-
optional :
|
130
|
+
optional :protocol_message_command_attributes, :message, 15, "temporal.api.command.v1.ProtocolMessageCommandAttributes"
|
131
|
+
optional :modify_workflow_properties_command_attributes, :message, 17, "temporal.api.command.v1.ModifyWorkflowPropertiesCommandAttributes"
|
138
132
|
end
|
139
133
|
end
|
140
134
|
end
|
141
135
|
end
|
142
136
|
|
143
|
-
module
|
137
|
+
module Temporalio
|
144
138
|
module Api
|
145
139
|
module Command
|
146
140
|
module V1
|
@@ -154,11 +148,11 @@ module Temporal
|
|
154
148
|
RequestCancelExternalWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.RequestCancelExternalWorkflowExecutionCommandAttributes").msgclass
|
155
149
|
SignalExternalWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.SignalExternalWorkflowExecutionCommandAttributes").msgclass
|
156
150
|
UpsertWorkflowSearchAttributesCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.UpsertWorkflowSearchAttributesCommandAttributes").msgclass
|
151
|
+
ModifyWorkflowPropertiesCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.ModifyWorkflowPropertiesCommandAttributes").msgclass
|
157
152
|
RecordMarkerCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.RecordMarkerCommandAttributes").msgclass
|
158
153
|
ContinueAsNewWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.ContinueAsNewWorkflowExecutionCommandAttributes").msgclass
|
159
154
|
StartChildWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.StartChildWorkflowExecutionCommandAttributes").msgclass
|
160
|
-
|
161
|
-
CompleteWorkflowUpdateCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.CompleteWorkflowUpdateCommandAttributes").msgclass
|
155
|
+
ProtocolMessageCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.ProtocolMessageCommandAttributes").msgclass
|
162
156
|
Command = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.Command").msgclass
|
163
157
|
end
|
164
158
|
end
|
@@ -46,10 +46,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
46
46
|
optional :maximum_attempts, :int32, 4
|
47
47
|
repeated :non_retryable_error_types, :string, 5
|
48
48
|
end
|
49
|
+
add_message "temporal.api.common.v1.MeteringMetadata" do
|
50
|
+
optional :nonfirst_local_activity_execution_attempts, :uint32, 13
|
51
|
+
end
|
49
52
|
end
|
50
53
|
end
|
51
54
|
|
52
|
-
module
|
55
|
+
module Temporalio
|
53
56
|
module Api
|
54
57
|
module Common
|
55
58
|
module V1
|
@@ -63,6 +66,7 @@ module Temporal
|
|
63
66
|
WorkflowType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.WorkflowType").msgclass
|
64
67
|
ActivityType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.ActivityType").msgclass
|
65
68
|
RetryPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.RetryPolicy").msgclass
|
69
|
+
MeteringMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.MeteringMetadata").msgclass
|
66
70
|
end
|
67
71
|
end
|
68
72
|
end
|
@@ -10,6 +10,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
10
10
|
value :BATCH_OPERATION_TYPE_TERMINATE, 1
|
11
11
|
value :BATCH_OPERATION_TYPE_CANCEL, 2
|
12
12
|
value :BATCH_OPERATION_TYPE_SIGNAL, 3
|
13
|
+
value :BATCH_OPERATION_TYPE_DELETE, 4
|
13
14
|
end
|
14
15
|
add_enum "temporal.api.enums.v1.BatchOperationState" do
|
15
16
|
value :BATCH_OPERATION_STATE_UNSPECIFIED, 0
|
@@ -20,7 +21,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
20
21
|
end
|
21
22
|
end
|
22
23
|
|
23
|
-
module
|
24
|
+
module Temporalio
|
24
25
|
module Api
|
25
26
|
module Enums
|
26
27
|
module V1
|
@@ -20,13 +20,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
20
20
|
value :COMMAND_TYPE_START_CHILD_WORKFLOW_EXECUTION, 11
|
21
21
|
value :COMMAND_TYPE_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION, 12
|
22
22
|
value :COMMAND_TYPE_UPSERT_WORKFLOW_SEARCH_ATTRIBUTES, 13
|
23
|
-
value :
|
24
|
-
value :
|
23
|
+
value :COMMAND_TYPE_PROTOCOL_MESSAGE, 14
|
24
|
+
value :COMMAND_TYPE_MODIFY_WORKFLOW_PROPERTIES, 16
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
module
|
29
|
+
module Temporalio
|
30
30
|
module Api
|
31
31
|
module Enums
|
32
32
|
module V1
|
@@ -18,6 +18,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
18
18
|
value :INDEXED_VALUE_TYPE_DOUBLE, 4
|
19
19
|
value :INDEXED_VALUE_TYPE_BOOL, 5
|
20
20
|
value :INDEXED_VALUE_TYPE_DATETIME, 6
|
21
|
+
value :INDEXED_VALUE_TYPE_KEYWORD_LIST, 7
|
21
22
|
end
|
22
23
|
add_enum "temporal.api.enums.v1.Severity" do
|
23
24
|
value :SEVERITY_UNSPECIFIED, 0
|
@@ -28,7 +29,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
31
|
-
module
|
32
|
+
module Temporalio
|
32
33
|
module Api
|
33
34
|
module Enums
|
34
35
|
module V1
|
@@ -47,16 +47,17 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
47
47
|
value :EVENT_TYPE_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED, 38
|
48
48
|
value :EVENT_TYPE_EXTERNAL_WORKFLOW_EXECUTION_SIGNALED, 39
|
49
49
|
value :EVENT_TYPE_UPSERT_WORKFLOW_SEARCH_ATTRIBUTES, 40
|
50
|
-
value :
|
51
|
-
value :
|
52
|
-
value :
|
50
|
+
value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_ACCEPTED, 41
|
51
|
+
value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_REJECTED, 42
|
52
|
+
value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_COMPLETED, 43
|
53
53
|
value :EVENT_TYPE_WORKFLOW_PROPERTIES_MODIFIED_EXTERNALLY, 44
|
54
54
|
value :EVENT_TYPE_ACTIVITY_PROPERTIES_MODIFIED_EXTERNALLY, 45
|
55
|
+
value :EVENT_TYPE_WORKFLOW_PROPERTIES_MODIFIED, 46
|
55
56
|
end
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
59
|
-
module
|
60
|
+
module Temporalio
|
60
61
|
module Api
|
61
62
|
module Enums
|
62
63
|
module V1
|
@@ -31,6 +31,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
31
31
|
value :WORKFLOW_TASK_FAILED_CAUSE_SCHEDULE_ACTIVITY_DUPLICATE_ID, 22
|
32
32
|
value :WORKFLOW_TASK_FAILED_CAUSE_BAD_SEARCH_ATTRIBUTES, 23
|
33
33
|
value :WORKFLOW_TASK_FAILED_CAUSE_NON_DETERMINISTIC_ERROR, 24
|
34
|
+
value :WORKFLOW_TASK_FAILED_CAUSE_BAD_MODIFY_WORKFLOW_PROPERTIES_ATTRIBUTES, 25
|
35
|
+
value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_CHILD_WORKFLOWS_LIMIT_EXCEEDED, 26
|
36
|
+
value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_ACTIVITIES_LIMIT_EXCEEDED, 27
|
37
|
+
value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_SIGNALS_LIMIT_EXCEEDED, 28
|
38
|
+
value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_REQUEST_CANCEL_LIMIT_EXCEEDED, 29
|
39
|
+
value :WORKFLOW_TASK_FAILED_CAUSE_BAD_UPDATE_WORKFLOW_EXECUTION_MESSAGE, 30
|
40
|
+
value :WORKFLOW_TASK_FAILED_CAUSE_UNHANDLED_UPDATE, 31
|
34
41
|
end
|
35
42
|
add_enum "temporal.api.enums.v1.StartChildWorkflowExecutionFailedCause" do
|
36
43
|
value :START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED, 0
|
@@ -52,11 +59,12 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
52
59
|
value :RESOURCE_EXHAUSTED_CAUSE_RPS_LIMIT, 1
|
53
60
|
value :RESOURCE_EXHAUSTED_CAUSE_CONCURRENT_LIMIT, 2
|
54
61
|
value :RESOURCE_EXHAUSTED_CAUSE_SYSTEM_OVERLOADED, 3
|
62
|
+
value :RESOURCE_EXHAUSTED_CAUSE_PERSISTENCE_LIMIT, 4
|
55
63
|
end
|
56
64
|
end
|
57
65
|
end
|
58
66
|
|
59
|
-
module
|
67
|
+
module Temporalio
|
60
68
|
module Api
|
61
69
|
module Enums
|
62
70
|
module V1
|