temporalio 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Cargo.lock +4035 -0
- data/Cargo.toml +25 -0
- data/Gemfile +20 -0
- data/LICENSE +16 -15
- data/README.md +455 -195
- data/Rakefile +387 -0
- data/ext/Cargo.toml +25 -0
- data/lib/temporalio/activity/complete_async_error.rb +11 -0
- data/lib/temporalio/activity/context.rb +82 -77
- data/lib/temporalio/activity/definition.rb +77 -0
- data/lib/temporalio/activity/info.rb +42 -46
- data/lib/temporalio/activity.rb +49 -65
- data/lib/temporalio/api/batch/v1/message.rb +31 -0
- data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +93 -0
- data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
- data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
- data/lib/temporalio/api/cloud/identity/v1/message.rb +36 -0
- data/lib/temporalio/api/cloud/namespace/v1/message.rb +35 -0
- data/lib/temporalio/api/cloud/operation/v1/message.rb +27 -0
- data/lib/temporalio/api/cloud/region/v1/message.rb +23 -0
- data/lib/temporalio/api/command/v1/message.rb +46 -0
- data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
- data/lib/temporalio/api/common/v1/message.rb +41 -0
- data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
- data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
- data/lib/temporalio/api/enums/v1/common.rb +26 -0
- data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
- data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
- data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
- data/lib/temporalio/api/enums/v1/query.rb +22 -0
- data/lib/temporalio/api/enums/v1/reset.rb +23 -0
- data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
- data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
- data/lib/temporalio/api/enums/v1/update.rb +22 -0
- data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
- data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
- data/lib/temporalio/api/export/v1/message.rb +24 -0
- data/lib/temporalio/api/failure/v1/message.rb +35 -0
- data/lib/temporalio/api/filter/v1/message.rb +27 -0
- data/lib/temporalio/api/history/v1/message.rb +90 -0
- data/lib/temporalio/api/namespace/v1/message.rb +31 -0
- data/lib/temporalio/api/nexus/v1/message.rb +40 -0
- data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
- data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
- data/lib/temporalio/api/operatorservice.rb +3 -0
- data/lib/temporalio/api/protocol/v1/message.rb +23 -0
- data/lib/temporalio/api/query/v1/message.rb +27 -0
- data/lib/temporalio/api/replication/v1/message.rb +26 -0
- data/lib/temporalio/api/schedule/v1/message.rb +42 -0
- data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
- data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
- data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
- data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
- data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
- data/lib/temporalio/api/update/v1/message.rb +33 -0
- data/lib/temporalio/api/version/v1/message.rb +26 -0
- data/lib/temporalio/api/workflow/v1/message.rb +43 -0
- data/lib/temporalio/api/workflowservice/v1/request_response.rb +189 -0
- data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
- data/lib/temporalio/api/workflowservice.rb +3 -0
- data/lib/temporalio/api.rb +13 -0
- data/lib/temporalio/cancellation.rb +150 -0
- data/lib/temporalio/client/activity_id_reference.rb +32 -0
- data/lib/temporalio/client/async_activity_handle.rb +110 -0
- data/lib/temporalio/client/connection/cloud_service.rb +648 -0
- data/lib/temporalio/client/connection/operator_service.rb +249 -0
- data/lib/temporalio/client/connection/service.rb +41 -0
- data/lib/temporalio/client/connection/workflow_service.rb +1218 -0
- data/lib/temporalio/client/connection.rb +270 -0
- data/lib/temporalio/client/interceptor.rb +316 -0
- data/lib/temporalio/client/workflow_execution.rb +103 -0
- data/lib/temporalio/client/workflow_execution_count.rb +36 -0
- data/lib/temporalio/client/workflow_execution_status.rb +18 -0
- data/lib/temporalio/client/workflow_handle.rb +380 -177
- data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
- data/lib/temporalio/client/workflow_update_handle.rb +67 -0
- data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
- data/lib/temporalio/client.rb +366 -93
- data/lib/temporalio/common_enums.rb +24 -0
- data/lib/temporalio/converters/data_converter.rb +102 -0
- data/lib/temporalio/converters/failure_converter.rb +200 -0
- data/lib/temporalio/converters/payload_codec.rb +26 -0
- data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
- data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
- data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
- data/lib/temporalio/converters/payload_converter/composite.rb +62 -0
- data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
- data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
- data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
- data/lib/temporalio/converters/payload_converter.rb +73 -0
- data/lib/temporalio/converters.rb +9 -0
- data/lib/temporalio/error/failure.rb +119 -94
- data/lib/temporalio/error.rb +147 -0
- data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
- data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
- data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
- data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
- data/lib/temporalio/internal/bridge/api/core_interface.rb +36 -0
- data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
- data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +52 -0
- data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +54 -0
- data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
- data/lib/temporalio/internal/bridge/api.rb +3 -0
- data/lib/temporalio/internal/bridge/client.rb +90 -0
- data/lib/temporalio/internal/bridge/runtime.rb +53 -0
- data/lib/temporalio/internal/bridge/testing.rb +46 -0
- data/lib/temporalio/internal/bridge/worker.rb +83 -0
- data/lib/temporalio/internal/bridge.rb +36 -0
- data/lib/temporalio/internal/client/implementation.rb +525 -0
- data/lib/temporalio/internal/proto_utils.rb +54 -0
- data/lib/temporalio/internal/worker/activity_worker.rb +345 -0
- data/lib/temporalio/internal/worker/multi_runner.rb +169 -0
- data/lib/temporalio/internal.rb +7 -0
- data/lib/temporalio/retry_policy.rb +39 -80
- data/lib/temporalio/runtime.rb +259 -13
- data/lib/temporalio/scoped_logger.rb +96 -0
- data/lib/temporalio/search_attributes.rb +300 -0
- data/lib/temporalio/testing/activity_environment.rb +132 -0
- data/lib/temporalio/testing/workflow_environment.rb +113 -88
- data/lib/temporalio/testing.rb +4 -169
- data/lib/temporalio/version.rb +3 -1
- data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
- data/lib/temporalio/worker/activity_executor/thread_pool.rb +254 -0
- data/lib/temporalio/worker/activity_executor.rb +55 -0
- data/lib/temporalio/worker/interceptor.rb +88 -0
- data/lib/temporalio/worker/tuner.rb +151 -0
- data/lib/temporalio/worker.rb +385 -163
- data/lib/temporalio/workflow_history.rb +22 -0
- data/lib/temporalio.rb +2 -7
- data/temporalio.gemspec +20 -38
- metadata +131 -596
- data/bridge/Cargo.lock +0 -2997
- data/bridge/Cargo.toml +0 -29
- data/bridge/sdk-core/ARCHITECTURE.md +0 -76
- data/bridge/sdk-core/Cargo.toml +0 -2
- data/bridge/sdk-core/LICENSE.txt +0 -23
- data/bridge/sdk-core/README.md +0 -117
- data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
- data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
- data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
- data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
- data/bridge/sdk-core/client/Cargo.toml +0 -40
- data/bridge/sdk-core/client/LICENSE.txt +0 -23
- data/bridge/sdk-core/client/src/lib.rs +0 -1462
- data/bridge/sdk-core/client/src/metrics.rs +0 -174
- data/bridge/sdk-core/client/src/raw.rs +0 -932
- data/bridge/sdk-core/client/src/retry.rs +0 -763
- data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
- data/bridge/sdk-core/core/Cargo.toml +0 -129
- data/bridge/sdk-core/core/LICENSE.txt +0 -23
- data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
- data/bridge/sdk-core/core/src/abstractions.rs +0 -355
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
- data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
- data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
- data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
- data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
- data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
- data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
- data/bridge/sdk-core/core/src/lib.rs +0 -289
- data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
- data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
- data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
- data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
- data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
- data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
- data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
- data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
- data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
- data/bridge/sdk-core/core/src/worker/client.rs +0 -389
- data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
- data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
- data/bridge/sdk-core/core-api/Cargo.toml +0 -33
- data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
- data/bridge/sdk-core/core-api/src/errors.rs +0 -62
- data/bridge/sdk-core/core-api/src/lib.rs +0 -113
- data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
- data/bridge/sdk-core/core-api/src/worker.rs +0 -161
- data/bridge/sdk-core/etc/deps.svg +0 -162
- data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
- data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
- data/bridge/sdk-core/etc/prometheus.yaml +0 -6
- data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
- data/bridge/sdk-core/fsm/Cargo.toml +0 -18
- data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/README.md +0 -3
- data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
- data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
- data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
- data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
- data/bridge/sdk-core/fsm/src/lib.rs +0 -2
- 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/histories/fail_wf_task.bin +0 -0
- data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
- data/bridge/sdk-core/integ-with-otel.sh +0 -7
- data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
- data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
- data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
- data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
- data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
- data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
- data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
- data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
- data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
- data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
- data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
- data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
- data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
- data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
- data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
- data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
- data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
- data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
- data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
- data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
- data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
- data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
- data/bridge/sdk-core/rustfmt.toml +0 -1
- data/bridge/sdk-core/sdk/Cargo.toml +0 -48
- data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
- data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
- data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
- data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
- data/bridge/sdk-core/sdk/src/lib.rs +0 -861
- data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
- data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
- data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
- data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
- data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
- data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
- data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
- data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
- data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
- data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
- data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
- data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
- data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
- data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
- data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
- data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
- data/bridge/sdk-core/tests/main.rs +0 -103
- data/bridge/sdk-core/tests/runner.rs +0 -132
- data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
- data/bridge/src/connection.rs +0 -202
- data/bridge/src/lib.rs +0 -494
- data/bridge/src/runtime.rs +0 -54
- data/bridge/src/test_server.rs +0 -153
- data/bridge/src/worker.rs +0 -197
- data/ext/Rakefile +0 -9
- data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
- data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
- data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
- data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
- data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
- data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
- data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
- data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
- data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
- data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
- data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
- data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
- data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
- data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
- data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
- data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
- data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
- data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
- data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +0 -49
- data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
- data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
- data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
- data/lib/temporalio/bridge/connect_options.rb +0 -15
- data/lib/temporalio/bridge/error.rb +0 -8
- data/lib/temporalio/bridge/retry_config.rb +0 -24
- data/lib/temporalio/bridge/tls_options.rb +0 -19
- data/lib/temporalio/bridge.rb +0 -14
- data/lib/temporalio/client/implementation.rb +0 -340
- data/lib/temporalio/connection/retry_config.rb +0 -44
- data/lib/temporalio/connection/service.rb +0 -20
- data/lib/temporalio/connection/test_service.rb +0 -92
- data/lib/temporalio/connection/tls_options.rb +0 -51
- data/lib/temporalio/connection/workflow_service.rb +0 -731
- data/lib/temporalio/connection.rb +0 -86
- data/lib/temporalio/data_converter.rb +0 -191
- data/lib/temporalio/error/workflow_failure.rb +0 -19
- data/lib/temporalio/errors.rb +0 -40
- data/lib/temporalio/failure_converter/base.rb +0 -26
- data/lib/temporalio/failure_converter/basic.rb +0 -319
- data/lib/temporalio/failure_converter.rb +0 -7
- data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
- data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
- data/lib/temporalio/interceptor/chain.rb +0 -28
- data/lib/temporalio/interceptor/client.rb +0 -127
- data/lib/temporalio/interceptor.rb +0 -22
- data/lib/temporalio/payload_codec/base.rb +0 -32
- data/lib/temporalio/payload_converter/base.rb +0 -24
- data/lib/temporalio/payload_converter/bytes.rb +0 -27
- data/lib/temporalio/payload_converter/composite.rb +0 -49
- data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
- data/lib/temporalio/payload_converter/json.rb +0 -26
- data/lib/temporalio/payload_converter/nil.rb +0 -26
- data/lib/temporalio/payload_converter.rb +0 -14
- data/lib/temporalio/retry_state.rb +0 -35
- data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
- data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
- data/lib/temporalio/timeout_type.rb +0 -29
- data/lib/temporalio/worker/activity_runner.rb +0 -114
- data/lib/temporalio/worker/activity_worker.rb +0 -164
- data/lib/temporalio/worker/reactor.rb +0 -46
- data/lib/temporalio/worker/runner.rb +0 -63
- data/lib/temporalio/worker/sync_worker.rb +0 -124
- data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
- data/lib/temporalio/workflow/async.rb +0 -46
- data/lib/temporalio/workflow/execution_info.rb +0 -54
- data/lib/temporalio/workflow/execution_status.rb +0 -36
- data/lib/temporalio/workflow/future.rb +0 -138
- data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
- data/lib/temporalio/workflow/info.rb +0 -76
- data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
- data/lib/thermite_patch.rb +0 -23
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module Temporalio
|
|
2
|
-
module Interceptor
|
|
3
|
-
# A mixin for implementing inbound Activity interceptors.
|
|
4
|
-
module ActivityInbound
|
|
5
|
-
class ExecuteActivityInput < Struct.new(
|
|
6
|
-
:activity,
|
|
7
|
-
:args,
|
|
8
|
-
:headers,
|
|
9
|
-
keyword_init: true,
|
|
10
|
-
); end
|
|
11
|
-
|
|
12
|
-
# Interceptor for {Temporalio::Activity#execute}.
|
|
13
|
-
#
|
|
14
|
-
# @param input [ExecuteActivityInput]
|
|
15
|
-
#
|
|
16
|
-
# @return [any] Activity execution result
|
|
17
|
-
def execute_activity(input)
|
|
18
|
-
yield(input)
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
module Temporalio
|
|
2
|
-
module Interceptor
|
|
3
|
-
# A mixin for implementing outbound Activity interceptors.
|
|
4
|
-
module ActivityOutbound
|
|
5
|
-
# Interceptor for {Temporalio::Activity::Context#info}.
|
|
6
|
-
#
|
|
7
|
-
# @yieldreturn Temporalio::Activity::Info
|
|
8
|
-
#
|
|
9
|
-
# @return [Temporalio::Activity::Info]
|
|
10
|
-
def activity_info
|
|
11
|
-
yield
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Interceptor for {Temporalio::Activity::Context#heartbeat}.
|
|
15
|
-
#
|
|
16
|
-
# @yieldparam Array[untyped]
|
|
17
|
-
#
|
|
18
|
-
# @param details [any] A list of details supplied with the heartbeat.
|
|
19
|
-
def heartbeat(*details)
|
|
20
|
-
yield(*details)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
module Temporalio
|
|
2
|
-
module Interceptor
|
|
3
|
-
# @api private
|
|
4
|
-
class Chain
|
|
5
|
-
def initialize(interceptors = [])
|
|
6
|
-
@interceptors = interceptors
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def invoke(method, *input)
|
|
10
|
-
chain = interceptors.dup
|
|
11
|
-
|
|
12
|
-
traverse_chain = lambda do |*i|
|
|
13
|
-
if chain.empty?
|
|
14
|
-
yield(*i)
|
|
15
|
-
else
|
|
16
|
-
chain.shift.public_send(method, *i, &traverse_chain)
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
traverse_chain.call(*input)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
private
|
|
24
|
-
|
|
25
|
-
attr_reader :interceptors
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
module Temporalio
|
|
2
|
-
module Interceptor
|
|
3
|
-
# A mixin for implementing Client side interceptors.
|
|
4
|
-
module Client
|
|
5
|
-
class StartWorkflowInput < Struct.new(
|
|
6
|
-
:workflow,
|
|
7
|
-
:args,
|
|
8
|
-
:id,
|
|
9
|
-
:task_queue,
|
|
10
|
-
:execution_timeout,
|
|
11
|
-
:run_timeout,
|
|
12
|
-
:task_timeout,
|
|
13
|
-
:id_reuse_policy,
|
|
14
|
-
:retry_policy,
|
|
15
|
-
:cron_schedule,
|
|
16
|
-
:memo,
|
|
17
|
-
:search_attributes,
|
|
18
|
-
:headers,
|
|
19
|
-
:start_signal,
|
|
20
|
-
:start_signal_args,
|
|
21
|
-
:rpc_metadata,
|
|
22
|
-
:rpc_timeout,
|
|
23
|
-
keyword_init: true,
|
|
24
|
-
); end
|
|
25
|
-
|
|
26
|
-
class DescribeWorkflowInput < Struct.new(
|
|
27
|
-
:id,
|
|
28
|
-
:run_id,
|
|
29
|
-
:rpc_metadata,
|
|
30
|
-
:rpc_timeout,
|
|
31
|
-
keyword_init: true,
|
|
32
|
-
); end
|
|
33
|
-
|
|
34
|
-
class QueryWorkflowInput < Struct.new(
|
|
35
|
-
:id,
|
|
36
|
-
:run_id,
|
|
37
|
-
:query,
|
|
38
|
-
:args,
|
|
39
|
-
:reject_condition,
|
|
40
|
-
:headers,
|
|
41
|
-
:rpc_metadata,
|
|
42
|
-
:rpc_timeout,
|
|
43
|
-
keyword_init: true,
|
|
44
|
-
); end
|
|
45
|
-
|
|
46
|
-
class SignalWorkflowInput < Struct.new(
|
|
47
|
-
:id,
|
|
48
|
-
:run_id,
|
|
49
|
-
:signal,
|
|
50
|
-
:args,
|
|
51
|
-
:headers,
|
|
52
|
-
:rpc_metadata,
|
|
53
|
-
:rpc_timeout,
|
|
54
|
-
keyword_init: true,
|
|
55
|
-
); end
|
|
56
|
-
|
|
57
|
-
class CancelWorkflowInput < Struct.new(
|
|
58
|
-
:id,
|
|
59
|
-
:run_id,
|
|
60
|
-
:first_execution_run_id,
|
|
61
|
-
:reason,
|
|
62
|
-
:rpc_metadata,
|
|
63
|
-
:rpc_timeout,
|
|
64
|
-
keyword_init: true,
|
|
65
|
-
); end
|
|
66
|
-
|
|
67
|
-
class TerminateWorkflowInput < Struct.new(
|
|
68
|
-
:id,
|
|
69
|
-
:run_id,
|
|
70
|
-
:first_execution_run_id,
|
|
71
|
-
:reason,
|
|
72
|
-
:args,
|
|
73
|
-
:rpc_metadata,
|
|
74
|
-
:rpc_timeout,
|
|
75
|
-
keyword_init: true,
|
|
76
|
-
); end
|
|
77
|
-
|
|
78
|
-
# Interceptor for {Temporalio::Client#start_workflow}.
|
|
79
|
-
#
|
|
80
|
-
# @param input [StartWorkflowInput]
|
|
81
|
-
#
|
|
82
|
-
# @return [Temporalio::Client::WorkflowHandle] A handle to interact with the workflow.
|
|
83
|
-
def start_workflow(input)
|
|
84
|
-
yield(input)
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
# Interceptor for {Temporalio::Client::WorkflowHandle#describe}.
|
|
88
|
-
#
|
|
89
|
-
# @param input [DescribeWorkflowInput]
|
|
90
|
-
#
|
|
91
|
-
# @return [Temporalio::Workflow::ExecutionInfo] Information about the workflow.
|
|
92
|
-
def describe_workflow(input)
|
|
93
|
-
yield(input)
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
# Interceptor for {Temporalio::Client::WorkflowHandle#query}.
|
|
97
|
-
#
|
|
98
|
-
# @param input [QueryWorkflowInput]
|
|
99
|
-
#
|
|
100
|
-
# @return [any] Query result
|
|
101
|
-
def query_workflow(input)
|
|
102
|
-
yield(input)
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
# Interceptor for {Temporalio::Client::WorkflowHandle#signal}.
|
|
106
|
-
#
|
|
107
|
-
# @param input [SignalWorkflowInput]
|
|
108
|
-
def signal_workflow(input)
|
|
109
|
-
yield(input)
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
# Interceptor for {Temporalio::Client::WorkflowHandle#cancel}.
|
|
113
|
-
#
|
|
114
|
-
# @param input [CancelWorkflowInput]
|
|
115
|
-
def cancel_workflow(input)
|
|
116
|
-
yield(input)
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
# Interceptor for {Temporalio::Client::WorkflowHandle#terminate}.
|
|
120
|
-
#
|
|
121
|
-
# @param input [TerminateWorkflowInput]
|
|
122
|
-
def terminate_workflow(input)
|
|
123
|
-
yield(input)
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
require 'temporalio/interceptor/activity_inbound'
|
|
2
|
-
require 'temporalio/interceptor/activity_outbound'
|
|
3
|
-
|
|
4
|
-
module Temporalio
|
|
5
|
-
module Interceptor
|
|
6
|
-
# NOTE: Using #each_with_object here and below instead of a simple #select because RBS can't
|
|
7
|
-
# reconcile that resulting array only has WorkflowInbound or WorkflowOutbound in it.
|
|
8
|
-
def self.filter(interceptors, type)
|
|
9
|
-
interceptor_class =
|
|
10
|
-
case type
|
|
11
|
-
when :activity_inbound
|
|
12
|
-
Temporalio::Interceptor::ActivityInbound
|
|
13
|
-
when :activity_outbound
|
|
14
|
-
Temporalio::Interceptor::ActivityOutbound
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
interceptors.each_with_object([]) do |i, result|
|
|
18
|
-
result << i if i.is_a?(interceptor_class)
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
module Temporalio
|
|
2
|
-
module PayloadCodec
|
|
3
|
-
# @abstract Use this Interface for implementing your payload codecs.
|
|
4
|
-
#
|
|
5
|
-
# Codec for encoding/decoding to/from bytes. Commonly used for compression or encryption.
|
|
6
|
-
class Base
|
|
7
|
-
# Encode the given payloads.
|
|
8
|
-
#
|
|
9
|
-
# @param _payloads [Array<Temporalio::Api::Common::V1::Payload>] Payloads to encode.
|
|
10
|
-
# This value should not be mutated.
|
|
11
|
-
#
|
|
12
|
-
# @return [Array<Temporalio::Api::Common::V1::Payload>] Encoded payloads. Note, this does not
|
|
13
|
-
# have to be the same number as payloads given, but must be at least one and cannot be more
|
|
14
|
-
# than was given.
|
|
15
|
-
def encode(_payloads)
|
|
16
|
-
raise NoMethodError, 'must implement #encode'
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Decode the given payloads.
|
|
20
|
-
#
|
|
21
|
-
# @param _payloads [Array<Temporalio::Api::Common::V1::Payload>] Payloads to decode. This value
|
|
22
|
-
# should not be mutated.
|
|
23
|
-
#
|
|
24
|
-
# @return [Array<Temporalio::Api::Common::V1::Payload>] Decoded payloads. Note, this does not
|
|
25
|
-
# have to be the same number as payloads given, but must be at least one and cannot be more
|
|
26
|
-
# than was given.
|
|
27
|
-
def decode(_payloads)
|
|
28
|
-
raise NoMethodError, 'must implement #decode'
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
module Temporalio
|
|
2
|
-
module PayloadConverter
|
|
3
|
-
# @abstract Use this Interface for implementing your payload converter.
|
|
4
|
-
class Base
|
|
5
|
-
# Convert a Ruby value to a proto Payload.
|
|
6
|
-
#
|
|
7
|
-
# @param _data [any] Ruby value to be converted.
|
|
8
|
-
#
|
|
9
|
-
# @return [Temporalio::Api::Common::V1::Payload]
|
|
10
|
-
def to_payload(_data)
|
|
11
|
-
raise NoMethodError, 'must implement #to_payload'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Convert a proto Payload to a Ruby value.
|
|
15
|
-
#
|
|
16
|
-
# @param _payload [Temporalio::Api::Common::V1::Payload] Proto Payload to be converted.
|
|
17
|
-
#
|
|
18
|
-
# @return [any]
|
|
19
|
-
def from_payload(_payload)
|
|
20
|
-
raise NoMethodError, 'must implement #from_payload'
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
require 'temporalio/payload_converter/encoding_base'
|
|
2
|
-
|
|
3
|
-
module Temporalio
|
|
4
|
-
module PayloadConverter
|
|
5
|
-
# A payload converter for encoding/decoding byte strings.
|
|
6
|
-
class Bytes < EncodingBase
|
|
7
|
-
ENCODING = 'binary/plain'.freeze
|
|
8
|
-
|
|
9
|
-
def encoding
|
|
10
|
-
ENCODING
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def from_payload(payload)
|
|
14
|
-
payload.data
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def to_payload(data)
|
|
18
|
-
return nil unless data.is_a?(String) && data.encoding == Encoding::ASCII_8BIT
|
|
19
|
-
|
|
20
|
-
Temporalio::Api::Common::V1::Payload.new(
|
|
21
|
-
metadata: { 'encoding' => ENCODING },
|
|
22
|
-
data: data,
|
|
23
|
-
)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
require 'temporalio/payload_converter/base'
|
|
2
|
-
require 'temporalio/errors'
|
|
3
|
-
|
|
4
|
-
module Temporalio
|
|
5
|
-
module PayloadConverter
|
|
6
|
-
# A payload converter for combining multiple payload converters together.
|
|
7
|
-
class Composite < Base
|
|
8
|
-
class ConverterNotFound < Temporalio::Error; end
|
|
9
|
-
class EncodingNotSet < Temporalio::Error; end
|
|
10
|
-
|
|
11
|
-
# @param converters [Array<Temporalio::PayloadConverter::Base>] List of converters
|
|
12
|
-
def initialize(*converters)
|
|
13
|
-
super()
|
|
14
|
-
|
|
15
|
-
@converters = converters.each_with_object({}) do |converter, result|
|
|
16
|
-
result[converter.encoding] = converter
|
|
17
|
-
result
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def to_payload(data)
|
|
22
|
-
converters.each_value do |converter|
|
|
23
|
-
payload = converter.to_payload(data)
|
|
24
|
-
return payload unless payload.nil?
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
available = converters.values.map(&:class).join(', ')
|
|
28
|
-
raise ConverterNotFound, "Available converters (#{available}) could not convert data"
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def from_payload(payload)
|
|
32
|
-
encoding = payload.metadata['encoding']
|
|
33
|
-
raise EncodingNotSet, 'Missing payload encoding' unless encoding
|
|
34
|
-
|
|
35
|
-
converter = converters[encoding]
|
|
36
|
-
unless converter
|
|
37
|
-
available = converters.keys.join(', ')
|
|
38
|
-
raise ConverterNotFound, "Missing converter for encoding '#{encoding}' (available: #{available})"
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
converter.from_payload(payload)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
private
|
|
45
|
-
|
|
46
|
-
attr_reader :converters
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
require 'temporal/api/common/v1/message_pb'
|
|
2
|
-
|
|
3
|
-
module Temporalio
|
|
4
|
-
module PayloadConverter
|
|
5
|
-
# @abstract Use this Interface for implementing an encoding payload converter.
|
|
6
|
-
# This is used as a converter for the {Temporalio::PayloadConverter::Composite}.
|
|
7
|
-
class EncodingBase
|
|
8
|
-
# A mime-type for the converter's encoding.
|
|
9
|
-
#
|
|
10
|
-
# @return [String]
|
|
11
|
-
def encoding
|
|
12
|
-
raise NoMethodError, 'must implement #encoding'
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Convert a Ruby value to a proto Payload.
|
|
16
|
-
#
|
|
17
|
-
# @param _data [any] Ruby value to be converted.
|
|
18
|
-
#
|
|
19
|
-
# @return [Temporalio::Api::Common::V1::Payload, nil] Return `nil` if the received value is not
|
|
20
|
-
# supported by this converter.
|
|
21
|
-
def to_payload(_data)
|
|
22
|
-
raise NoMethodError, 'must implement #to_payload'
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# Convert a proto Payload to a Ruby value.
|
|
26
|
-
#
|
|
27
|
-
# @param _payload [Temporalio::Api::Common::V1::Payload] Proto Payload to be converted.
|
|
28
|
-
#
|
|
29
|
-
# @return [any]
|
|
30
|
-
def from_payload(_payload)
|
|
31
|
-
raise NoMethodError, 'must implement #from_payload'
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
require 'json/ext'
|
|
2
|
-
require 'temporalio/payload_converter/encoding_base'
|
|
3
|
-
|
|
4
|
-
module Temporalio
|
|
5
|
-
module PayloadConverter
|
|
6
|
-
# A payload converter for encoding/decoding JSON data.
|
|
7
|
-
class JSON < EncodingBase
|
|
8
|
-
ENCODING = 'json/plain'.freeze
|
|
9
|
-
|
|
10
|
-
def encoding
|
|
11
|
-
ENCODING
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def from_payload(payload)
|
|
15
|
-
::JSON.parse(payload.data, create_additions: true)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def to_payload(data)
|
|
19
|
-
Temporalio::Api::Common::V1::Payload.new(
|
|
20
|
-
metadata: { 'encoding' => ENCODING },
|
|
21
|
-
data: ::JSON.generate(data).b,
|
|
22
|
-
)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
require 'temporalio/payload_converter/encoding_base'
|
|
2
|
-
|
|
3
|
-
module Temporalio
|
|
4
|
-
module PayloadConverter
|
|
5
|
-
# A payload converter for encoding/decoding nils.
|
|
6
|
-
class Nil < EncodingBase
|
|
7
|
-
ENCODING = 'binary/null'.freeze
|
|
8
|
-
|
|
9
|
-
def encoding
|
|
10
|
-
ENCODING
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def from_payload(_payload)
|
|
14
|
-
nil
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def to_payload(data)
|
|
18
|
-
return nil unless data.nil?
|
|
19
|
-
|
|
20
|
-
Temporalio::Api::Common::V1::Payload.new(
|
|
21
|
-
metadata: { 'encoding' => ENCODING },
|
|
22
|
-
)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
require 'temporalio/payload_converter/bytes'
|
|
2
|
-
require 'temporalio/payload_converter/composite'
|
|
3
|
-
require 'temporalio/payload_converter/json'
|
|
4
|
-
require 'temporalio/payload_converter/nil'
|
|
5
|
-
|
|
6
|
-
module Temporalio
|
|
7
|
-
module PayloadConverter
|
|
8
|
-
DEFAULT = Temporalio::PayloadConverter::Composite.new(
|
|
9
|
-
Temporalio::PayloadConverter::Nil.new,
|
|
10
|
-
Temporalio::PayloadConverter::Bytes.new,
|
|
11
|
-
Temporalio::PayloadConverter::JSON.new,
|
|
12
|
-
)
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
module Temporalio
|
|
2
|
-
# Current retry state of the workflow/activity during error.
|
|
3
|
-
module RetryState
|
|
4
|
-
STATES = [
|
|
5
|
-
IN_PROGRESS = :IN_PROGRESS,
|
|
6
|
-
NON_RETRYABLE_FAILURE = :NON_RETRYABLE_FAILURE,
|
|
7
|
-
TIMEOUT = :TIMEOUT,
|
|
8
|
-
MAXIMUM_ATTEMPTS_REACHED = :MAXIMUM_ATTEMPTS_REACHED,
|
|
9
|
-
RETRY_POLICY_NOT_SET = :RETRY_POLICY_NOT_SET,
|
|
10
|
-
INTERNAL_SERVER_ERROR = :INTERNAL_SERVER_ERROR,
|
|
11
|
-
CANCEL_REQUESTED = :CANCEL_REQUESTED,
|
|
12
|
-
].freeze
|
|
13
|
-
|
|
14
|
-
# RBS screws up style definitions when using .freeze
|
|
15
|
-
# rubocop:disable Style/MutableConstant
|
|
16
|
-
API_MAP = {
|
|
17
|
-
RETRY_STATE_IN_PROGRESS: IN_PROGRESS,
|
|
18
|
-
RETRY_STATE_NON_RETRYABLE_FAILURE: NON_RETRYABLE_FAILURE,
|
|
19
|
-
RETRY_STATE_TIMEOUT: TIMEOUT,
|
|
20
|
-
RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED: MAXIMUM_ATTEMPTS_REACHED,
|
|
21
|
-
RETRY_STATE_RETRY_POLICY_NOT_SET: RETRY_POLICY_NOT_SET,
|
|
22
|
-
RETRY_STATE_INTERNAL_SERVER_ERROR: INTERNAL_SERVER_ERROR,
|
|
23
|
-
RETRY_STATE_CANCEL_REQUESTED: CANCEL_REQUESTED,
|
|
24
|
-
}
|
|
25
|
-
# rubocop:enable Style/MutableConstant
|
|
26
|
-
|
|
27
|
-
def self.to_raw(state)
|
|
28
|
-
API_MAP.invert[state] || :RETRY_STATE_UNSPECIFIED
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def self.from_raw(raw_state)
|
|
32
|
-
API_MAP[raw_state]
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
require 'forwardable'
|
|
2
|
-
|
|
3
|
-
module Temporalio
|
|
4
|
-
module Testing
|
|
5
|
-
class TimeSkippingHandle
|
|
6
|
-
extend Forwardable
|
|
7
|
-
|
|
8
|
-
# Proxy all the WorkflowHandle calls to the original handle except for :result
|
|
9
|
-
def_delegators :handle, :id, :run_id, :result_run_id, :first_execution_run_id, :describe,
|
|
10
|
-
:cancel, :query, :signal, :terminate
|
|
11
|
-
|
|
12
|
-
def initialize(handle, env)
|
|
13
|
-
@handle = handle
|
|
14
|
-
@env = env
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def result(follow_runs: true, rpc_metadata: {}, rpc_timeout: nil)
|
|
18
|
-
env.with_time_skipping do
|
|
19
|
-
handle.result(
|
|
20
|
-
follow_runs: follow_runs,
|
|
21
|
-
rpc_metadata: rpc_metadata,
|
|
22
|
-
rpc_timeout: rpc_timeout,
|
|
23
|
-
)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
private
|
|
28
|
-
|
|
29
|
-
attr_reader :handle, :env
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
require 'temporalio/interceptor/client'
|
|
2
|
-
require 'temporalio/testing/time_skipping_handle'
|
|
3
|
-
|
|
4
|
-
module Temporalio
|
|
5
|
-
module Testing
|
|
6
|
-
class TimeSkippingInterceptor
|
|
7
|
-
include Temporalio::Interceptor::Client
|
|
8
|
-
|
|
9
|
-
def initialize(env)
|
|
10
|
-
@env = env
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def start_workflow(input)
|
|
14
|
-
handle = yield(input)
|
|
15
|
-
Temporalio::Testing::TimeSkippingHandle.new(handle, env)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
attr_reader :env
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module Temporalio
|
|
2
|
-
# Type of timeout for {Temporalio::TimeoutError}.
|
|
3
|
-
module TimeoutType
|
|
4
|
-
TYPES = [
|
|
5
|
-
START_TO_CLOSE = :START_TO_CLOSE,
|
|
6
|
-
SCHEDULE_TO_START = :SCHEDULE_TO_START,
|
|
7
|
-
SCHEDULE_TO_CLOSE = :SCHEDULE_TO_CLOSE,
|
|
8
|
-
HEARTBEAT = :HEARTBEAT,
|
|
9
|
-
].freeze
|
|
10
|
-
|
|
11
|
-
# RBS screws up style definitions when using .freeze
|
|
12
|
-
# rubocop:disable Style/MutableConstant
|
|
13
|
-
API_MAP = {
|
|
14
|
-
TIMEOUT_TYPE_START_TO_CLOSE: START_TO_CLOSE,
|
|
15
|
-
TIMEOUT_TYPE_SCHEDULE_TO_START: SCHEDULE_TO_START,
|
|
16
|
-
TIMEOUT_TYPE_SCHEDULE_TO_CLOSE: SCHEDULE_TO_CLOSE,
|
|
17
|
-
TIMEOUT_TYPE_HEARTBEAT: HEARTBEAT,
|
|
18
|
-
}
|
|
19
|
-
# rubocop:enable Style/MutableConstant
|
|
20
|
-
|
|
21
|
-
def self.to_raw(type)
|
|
22
|
-
API_MAP.invert[type] || :TIMEOUT_TYPE_UNSPECIFIED
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def self.from_raw(raw_type)
|
|
26
|
-
API_MAP[raw_type]
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|