temporalio 0.0.1
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 +7 -0
- data/Gemfile +3 -0
- data/LICENSE +20 -0
- data/README.md +130 -0
- data/bridge/Cargo.lock +2865 -0
- data/bridge/Cargo.toml +26 -0
- data/bridge/sdk-core/ARCHITECTURE.md +76 -0
- data/bridge/sdk-core/Cargo.lock +2606 -0
- data/bridge/sdk-core/Cargo.toml +2 -0
- data/bridge/sdk-core/LICENSE.txt +23 -0
- data/bridge/sdk-core/README.md +107 -0
- data/bridge/sdk-core/arch_docs/diagrams/README.md +10 -0
- data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +40 -0
- data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +1 -0
- data/bridge/sdk-core/arch_docs/sticky_queues.md +51 -0
- data/bridge/sdk-core/bridge-ffi/Cargo.toml +24 -0
- data/bridge/sdk-core/bridge-ffi/LICENSE.txt +23 -0
- data/bridge/sdk-core/bridge-ffi/build.rs +25 -0
- data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +249 -0
- data/bridge/sdk-core/bridge-ffi/src/lib.rs +825 -0
- data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +211 -0
- data/bridge/sdk-core/client/Cargo.toml +40 -0
- data/bridge/sdk-core/client/LICENSE.txt +23 -0
- data/bridge/sdk-core/client/src/lib.rs +1294 -0
- data/bridge/sdk-core/client/src/metrics.rs +165 -0
- data/bridge/sdk-core/client/src/raw.rs +931 -0
- data/bridge/sdk-core/client/src/retry.rs +674 -0
- data/bridge/sdk-core/client/src/workflow_handle/mod.rs +185 -0
- data/bridge/sdk-core/core/Cargo.toml +116 -0
- data/bridge/sdk-core/core/LICENSE.txt +23 -0
- data/bridge/sdk-core/core/benches/workflow_replay.rs +73 -0
- data/bridge/sdk-core/core/src/abstractions.rs +166 -0
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +911 -0
- data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +221 -0
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +107 -0
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +515 -0
- data/bridge/sdk-core/core/src/core_tests/mod.rs +100 -0
- data/bridge/sdk-core/core/src/core_tests/queries.rs +736 -0
- data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +65 -0
- data/bridge/sdk-core/core/src/core_tests/workers.rs +259 -0
- data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +124 -0
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +2070 -0
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +515 -0
- data/bridge/sdk-core/core/src/lib.rs +175 -0
- data/bridge/sdk-core/core/src/log_export.rs +62 -0
- data/bridge/sdk-core/core/src/pollers/mod.rs +54 -0
- data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +297 -0
- data/bridge/sdk-core/core/src/protosext/mod.rs +428 -0
- data/bridge/sdk-core/core/src/replay/mod.rs +71 -0
- data/bridge/sdk-core/core/src/retry_logic.rs +202 -0
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +383 -0
- data/bridge/sdk-core/core/src/telemetry/mod.rs +412 -0
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +77 -0
- data/bridge/sdk-core/core/src/test_help/mod.rs +875 -0
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +580 -0
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +1042 -0
- data/bridge/sdk-core/core/src/worker/activities.rs +464 -0
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +87 -0
- data/bridge/sdk-core/core/src/worker/client.rs +347 -0
- data/bridge/sdk-core/core/src/worker/mod.rs +566 -0
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +37 -0
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +110 -0
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +458 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +911 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +298 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +171 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +860 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +140 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +161 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +133 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +1448 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +342 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +127 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +712 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +71 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +443 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +439 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +169 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +246 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +96 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +1184 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +277 -0
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +198 -0
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +647 -0
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +1143 -0
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +145 -0
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +88 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +940 -0
- data/bridge/sdk-core/core-api/Cargo.toml +31 -0
- data/bridge/sdk-core/core-api/LICENSE.txt +23 -0
- data/bridge/sdk-core/core-api/src/errors.rs +95 -0
- data/bridge/sdk-core/core-api/src/lib.rs +151 -0
- data/bridge/sdk-core/core-api/src/worker.rs +135 -0
- data/bridge/sdk-core/etc/deps.svg +187 -0
- data/bridge/sdk-core/etc/dynamic-config.yaml +2 -0
- data/bridge/sdk-core/etc/otel-collector-config.yaml +36 -0
- data/bridge/sdk-core/etc/prometheus.yaml +6 -0
- data/bridge/sdk-core/fsm/Cargo.toml +18 -0
- data/bridge/sdk-core/fsm/LICENSE.txt +23 -0
- data/bridge/sdk-core/fsm/README.md +3 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +27 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +23 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +647 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +8 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +18 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +12 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +41 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +14 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +11 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +32 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +31 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +46 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +29 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +12 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +32 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +18 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +5 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +11 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +5 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +11 -0
- data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +5 -0
- data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +14 -0
- data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +23 -0
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +249 -0
- data/bridge/sdk-core/fsm/src/lib.rs +2 -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 +7 -0
- data/bridge/sdk-core/protos/api_upstream/README.md +9 -0
- data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +40 -0
- data/bridge/sdk-core/protos/api_upstream/buf.yaml +12 -0
- data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +141 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +86 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +83 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +259 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +112 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +46 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/cluster.proto +40 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +57 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +55 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +168 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +97 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +51 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +50 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +41 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +60 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +59 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +51 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +122 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +108 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +114 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +56 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +751 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +97 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +161 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +99 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +61 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +55 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +300 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +108 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +46 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +59 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +145 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +1124 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +401 -0
- data/bridge/sdk-core/protos/grpc/health/v1/health.proto +63 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +78 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +79 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +210 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +77 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +15 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +30 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +30 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +261 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +297 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +29 -0
- data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +38 -0
- data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +13 -0
- data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +141 -0
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +63 -0
- data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +90 -0
- data/bridge/sdk-core/rustfmt.toml +1 -0
- data/bridge/sdk-core/sdk/Cargo.toml +47 -0
- data/bridge/sdk-core/sdk/LICENSE.txt +23 -0
- data/bridge/sdk-core/sdk/src/activity_context.rs +230 -0
- data/bridge/sdk-core/sdk/src/app_data.rs +37 -0
- data/bridge/sdk-core/sdk/src/conversions.rs +8 -0
- data/bridge/sdk-core/sdk/src/interceptors.rs +17 -0
- data/bridge/sdk-core/sdk/src/lib.rs +792 -0
- data/bridge/sdk-core/sdk/src/payload_converter.rs +11 -0
- data/bridge/sdk-core/sdk/src/workflow_context/options.rs +295 -0
- data/bridge/sdk-core/sdk/src/workflow_context.rs +683 -0
- data/bridge/sdk-core/sdk/src/workflow_future.rs +503 -0
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +30 -0
- data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +23 -0
- data/bridge/sdk-core/sdk-core-protos/build.rs +108 -0
- data/bridge/sdk-core/sdk-core-protos/src/constants.rs +7 -0
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +497 -0
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +230 -0
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +1910 -0
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +38 -0
- data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +14 -0
- data/bridge/sdk-core/test-utils/Cargo.toml +35 -0
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +1579 -0
- data/bridge/sdk-core/test-utils/src/histfetch.rs +28 -0
- data/bridge/sdk-core/test-utils/src/lib.rs +598 -0
- data/bridge/sdk-core/tests/integ_tests/client_tests.rs +36 -0
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +128 -0
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +218 -0
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +146 -0
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +437 -0
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +93 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +878 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +61 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +59 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +58 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +50 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +60 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +54 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +634 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +113 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +137 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +93 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +167 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +99 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +131 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +75 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +587 -0
- data/bridge/sdk-core/tests/load_tests.rs +191 -0
- data/bridge/sdk-core/tests/main.rs +111 -0
- data/bridge/sdk-core/tests/runner.rs +93 -0
- data/bridge/src/connection.rs +167 -0
- data/bridge/src/lib.rs +180 -0
- data/bridge/src/runtime.rs +47 -0
- data/bridge/src/worker.rs +73 -0
- data/ext/Rakefile +9 -0
- data/lib/bridge.so +0 -0
- data/lib/gen/dependencies/gogoproto/gogo_pb.rb +14 -0
- data/lib/gen/temporal/api/batch/v1/message_pb.rb +48 -0
- data/lib/gen/temporal/api/cluster/v1/message_pb.rb +67 -0
- data/lib/gen/temporal/api/command/v1/message_pb.rb +166 -0
- data/lib/gen/temporal/api/common/v1/message_pb.rb +69 -0
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +32 -0
- data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +26 -0
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +37 -0
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +41 -0
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +67 -0
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +71 -0
- data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +37 -0
- data/lib/gen/temporal/api/enums/v1/query_pb.rb +31 -0
- data/lib/gen/temporal/api/enums/v1/reset_pb.rb +24 -0
- data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +28 -0
- data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +30 -0
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +28 -0
- data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +89 -0
- data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +84 -0
- data/lib/gen/temporal/api/failure/v1/message_pb.rb +83 -0
- data/lib/gen/temporal/api/filter/v1/message_pb.rb +40 -0
- data/lib/gen/temporal/api/history/v1/message_pb.rb +489 -0
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +63 -0
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +125 -0
- data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +20 -0
- data/lib/gen/temporal/api/query/v1/message_pb.rb +38 -0
- data/lib/gen/temporal/api/replication/v1/message_pb.rb +37 -0
- data/lib/gen/temporal/api/schedule/v1/message_pb.rb +128 -0
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +73 -0
- data/lib/gen/temporal/api/update/v1/message_pb.rb +26 -0
- data/lib/gen/temporal/api/version/v1/message_pb.rb +41 -0
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +110 -0
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +771 -0
- data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +20 -0
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +58 -0
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +57 -0
- data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +222 -0
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +57 -0
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +22 -0
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +34 -0
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +27 -0
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +164 -0
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +192 -0
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +34 -0
- data/lib/temporal/bridge.rb +14 -0
- data/lib/temporal/client/implementation.rb +339 -0
- data/lib/temporal/client/workflow_handle.rb +243 -0
- data/lib/temporal/client.rb +144 -0
- data/lib/temporal/connection.rb +736 -0
- data/lib/temporal/data_converter.rb +150 -0
- data/lib/temporal/error/failure.rb +194 -0
- data/lib/temporal/error/workflow_failure.rb +17 -0
- data/lib/temporal/errors.rb +22 -0
- data/lib/temporal/failure_converter/base.rb +26 -0
- data/lib/temporal/failure_converter/basic.rb +313 -0
- data/lib/temporal/failure_converter.rb +8 -0
- data/lib/temporal/interceptor/chain.rb +27 -0
- data/lib/temporal/interceptor/client.rb +102 -0
- data/lib/temporal/payload_codec/base.rb +32 -0
- data/lib/temporal/payload_converter/base.rb +24 -0
- data/lib/temporal/payload_converter/bytes.rb +26 -0
- data/lib/temporal/payload_converter/composite.rb +47 -0
- data/lib/temporal/payload_converter/encoding_base.rb +35 -0
- data/lib/temporal/payload_converter/json.rb +25 -0
- data/lib/temporal/payload_converter/nil.rb +25 -0
- data/lib/temporal/payload_converter.rb +14 -0
- data/lib/temporal/retry_policy.rb +82 -0
- data/lib/temporal/retry_state.rb +35 -0
- data/lib/temporal/runtime.rb +22 -0
- data/lib/temporal/timeout_type.rb +29 -0
- data/lib/temporal/version.rb +3 -0
- data/lib/temporal/workflow/execution_info.rb +54 -0
- data/lib/temporal/workflow/execution_status.rb +36 -0
- data/lib/temporal/workflow/id_reuse_policy.rb +36 -0
- data/lib/temporal/workflow/query_reject_condition.rb +33 -0
- data/lib/temporal.rb +8 -0
- data/lib/temporalio.rb +3 -0
- data/lib/thermite_patch.rb +23 -0
- data/temporalio.gemspec +41 -0
- metadata +583 -0
@@ -0,0 +1,210 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
package coresdk.bridge;
|
4
|
+
|
5
|
+
import "google/protobuf/duration.proto";
|
6
|
+
import "google/protobuf/timestamp.proto";
|
7
|
+
import "google/protobuf/wrappers.proto";
|
8
|
+
import "temporal/sdk/core/core_interface.proto";
|
9
|
+
import "temporal/sdk/core/activity_task/activity_task.proto";
|
10
|
+
import "temporal/sdk/core/workflow_activation/workflow_activation.proto";
|
11
|
+
import "temporal/sdk/core/workflow_completion/workflow_completion.proto";
|
12
|
+
|
13
|
+
enum LogLevel {
|
14
|
+
LOG_LEVEL_UNSPECIFIED = 0;
|
15
|
+
OFF = 1;
|
16
|
+
ERROR = 2;
|
17
|
+
WARN = 3;
|
18
|
+
INFO = 4;
|
19
|
+
DEBUG = 5;
|
20
|
+
TRACE = 6;
|
21
|
+
}
|
22
|
+
|
23
|
+
message InitTelemetryRequest {
|
24
|
+
string tracing_filter = 1;
|
25
|
+
oneof logging {
|
26
|
+
ConsoleLoggerOptions console = 2;
|
27
|
+
ForwardLoggerOptions forward = 3;
|
28
|
+
};
|
29
|
+
|
30
|
+
oneof tracing {
|
31
|
+
OtelCollectorOptions otel_tracing = 4;
|
32
|
+
}
|
33
|
+
|
34
|
+
oneof metrics {
|
35
|
+
OtelCollectorOptions otel_metrics = 5;
|
36
|
+
PrometheusOptions prometheus = 6;
|
37
|
+
}
|
38
|
+
|
39
|
+
message ConsoleLoggerOptions {}
|
40
|
+
message ForwardLoggerOptions {
|
41
|
+
LogLevel level = 1;
|
42
|
+
}
|
43
|
+
|
44
|
+
message OtelCollectorOptions {
|
45
|
+
string url = 1;
|
46
|
+
map<string, string> headers = 2;
|
47
|
+
}
|
48
|
+
message PrometheusOptions {
|
49
|
+
string export_bind_address = 1;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
message CreateClientRequest {
|
54
|
+
string target_url = 1;
|
55
|
+
string namespace = 2;
|
56
|
+
string client_name = 3;
|
57
|
+
string client_version = 4;
|
58
|
+
string identity = 6;
|
59
|
+
TlsConfig tls_config = 8;
|
60
|
+
RetryConfig retry_config = 9;
|
61
|
+
|
62
|
+
message TlsConfig {
|
63
|
+
bytes server_root_ca_cert = 1;
|
64
|
+
string domain = 2;
|
65
|
+
bytes client_cert = 3;
|
66
|
+
bytes client_private_key = 4;
|
67
|
+
}
|
68
|
+
|
69
|
+
message RetryConfig {
|
70
|
+
google.protobuf.Duration initial_interval = 1;
|
71
|
+
google.protobuf.DoubleValue randomization_factor = 2;
|
72
|
+
google.protobuf.DoubleValue multiplier = 3;
|
73
|
+
google.protobuf.Duration max_interval = 4;
|
74
|
+
google.protobuf.Duration max_elapsed_time = 5;
|
75
|
+
google.protobuf.UInt32Value max_retries = 6;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
message InitResponse {
|
80
|
+
Error error = 1;
|
81
|
+
|
82
|
+
message Error {
|
83
|
+
string message = 1;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
message CreateWorkerRequest {
|
88
|
+
string task_queue = 1;
|
89
|
+
google.protobuf.UInt32Value max_cached_workflows = 2;
|
90
|
+
google.protobuf.UInt32Value max_outstanding_workflow_tasks = 3;
|
91
|
+
google.protobuf.UInt32Value max_outstanding_activities = 4;
|
92
|
+
google.protobuf.UInt32Value max_outstanding_local_activities = 5;
|
93
|
+
google.protobuf.UInt32Value max_concurrent_wft_polls = 6;
|
94
|
+
google.protobuf.FloatValue nonsticky_to_sticky_poll_ratio = 7;
|
95
|
+
google.protobuf.UInt32Value max_concurrent_at_polls = 8;
|
96
|
+
bool no_remote_activities = 9;
|
97
|
+
google.protobuf.Duration sticky_queue_schedule_to_start_timeout = 10;
|
98
|
+
google.protobuf.Duration max_heartbeat_throttle_interval = 11;
|
99
|
+
google.protobuf.Duration default_heartbeat_throttle_interval = 12;
|
100
|
+
}
|
101
|
+
|
102
|
+
message RegisterWorkerResponse {
|
103
|
+
Error error = 1;
|
104
|
+
|
105
|
+
message Error {
|
106
|
+
string message = 1;
|
107
|
+
}
|
108
|
+
}
|
109
|
+
|
110
|
+
message PollWorkflowActivationRequest {
|
111
|
+
}
|
112
|
+
|
113
|
+
message PollWorkflowActivationResponse {
|
114
|
+
oneof response {
|
115
|
+
coresdk.workflow_activation.WorkflowActivation activation = 1;
|
116
|
+
Error error = 2;
|
117
|
+
}
|
118
|
+
|
119
|
+
message Error {
|
120
|
+
string message = 1;
|
121
|
+
bool shutdown = 2;
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
message PollActivityTaskRequest {
|
126
|
+
}
|
127
|
+
|
128
|
+
message PollActivityTaskResponse {
|
129
|
+
oneof response {
|
130
|
+
coresdk.activity_task.ActivityTask task = 1;
|
131
|
+
Error error = 2;
|
132
|
+
}
|
133
|
+
|
134
|
+
message Error {
|
135
|
+
string message = 1;
|
136
|
+
bool shutdown = 2;
|
137
|
+
}
|
138
|
+
}
|
139
|
+
|
140
|
+
message CompleteWorkflowActivationRequest {
|
141
|
+
coresdk.workflow_completion.WorkflowActivationCompletion completion = 1;
|
142
|
+
}
|
143
|
+
|
144
|
+
message CompleteWorkflowActivationResponse {
|
145
|
+
Error error = 1;
|
146
|
+
|
147
|
+
message Error {
|
148
|
+
string message = 1;
|
149
|
+
}
|
150
|
+
}
|
151
|
+
|
152
|
+
message CompleteActivityTaskRequest {
|
153
|
+
coresdk.ActivityTaskCompletion completion = 1;
|
154
|
+
}
|
155
|
+
|
156
|
+
message CompleteActivityTaskResponse {
|
157
|
+
Error error = 1;
|
158
|
+
|
159
|
+
message Error {
|
160
|
+
string message = 1;
|
161
|
+
}
|
162
|
+
}
|
163
|
+
|
164
|
+
message RecordActivityHeartbeatRequest {
|
165
|
+
coresdk.ActivityHeartbeat heartbeat = 1;
|
166
|
+
}
|
167
|
+
|
168
|
+
message RecordActivityHeartbeatResponse {
|
169
|
+
Error error = 1;
|
170
|
+
|
171
|
+
message Error {
|
172
|
+
string message = 1;
|
173
|
+
}
|
174
|
+
}
|
175
|
+
|
176
|
+
message RequestWorkflowEvictionRequest {
|
177
|
+
string run_id = 1;
|
178
|
+
}
|
179
|
+
|
180
|
+
message RequestWorkflowEvictionResponse {
|
181
|
+
Error error = 1;
|
182
|
+
|
183
|
+
message Error {
|
184
|
+
string message = 1;
|
185
|
+
}
|
186
|
+
}
|
187
|
+
|
188
|
+
message ShutdownWorkerRequest {
|
189
|
+
}
|
190
|
+
|
191
|
+
message ShutdownWorkerResponse {
|
192
|
+
Error error = 1;
|
193
|
+
|
194
|
+
message Error {
|
195
|
+
string message = 1;
|
196
|
+
}
|
197
|
+
}
|
198
|
+
|
199
|
+
message FetchBufferedLogsRequest {
|
200
|
+
}
|
201
|
+
|
202
|
+
message FetchBufferedLogsResponse {
|
203
|
+
repeated LogEntry entries = 1;
|
204
|
+
|
205
|
+
message LogEntry {
|
206
|
+
string message = 1;
|
207
|
+
google.protobuf.Timestamp timestamp = 2;
|
208
|
+
LogLevel level = 3;
|
209
|
+
}
|
210
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
package coresdk.child_workflow;
|
4
|
+
|
5
|
+
import "temporal/api/common/v1/message.proto";
|
6
|
+
import "temporal/api/failure/v1/message.proto";
|
7
|
+
import "temporal/sdk/core/common/common.proto";
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Used by core to resolve child workflow executions.
|
11
|
+
*/
|
12
|
+
message ChildWorkflowResult {
|
13
|
+
oneof status {
|
14
|
+
Success completed = 1;
|
15
|
+
Failure failed = 2;
|
16
|
+
Cancellation cancelled = 3;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Used in ChildWorkflowResult to report successful completion.
|
22
|
+
*/
|
23
|
+
message Success {
|
24
|
+
temporal.api.common.v1.Payload result = 1;
|
25
|
+
}
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Used in ChildWorkflowResult to report non successful outcomes such as
|
29
|
+
* application failures, timeouts, terminations, and cancellations.
|
30
|
+
*/
|
31
|
+
message Failure {
|
32
|
+
temporal.api.failure.v1.Failure failure = 1;
|
33
|
+
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Used in ChildWorkflowResult to report cancellation.
|
37
|
+
* Failure should be ChildWorkflowFailure with a CanceledFailure cause.
|
38
|
+
*/
|
39
|
+
message Cancellation {
|
40
|
+
temporal.api.failure.v1.Failure failure = 1;
|
41
|
+
}
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Used by the service to determine the fate of a child workflow
|
45
|
+
* in case its parent is closed.
|
46
|
+
*/
|
47
|
+
enum ParentClosePolicy {
|
48
|
+
/** Let's the server set the default. */
|
49
|
+
PARENT_CLOSE_POLICY_UNSPECIFIED = 0;
|
50
|
+
/** Terminate means terminating the child workflow. */
|
51
|
+
PARENT_CLOSE_POLICY_TERMINATE = 1;
|
52
|
+
/** Abandon means not doing anything on the child workflow. */
|
53
|
+
PARENT_CLOSE_POLICY_ABANDON = 2;
|
54
|
+
/** Cancel means requesting cancellation on the child workflow. */
|
55
|
+
PARENT_CLOSE_POLICY_REQUEST_CANCEL = 3;
|
56
|
+
}
|
57
|
+
|
58
|
+
/** Possible causes of failure to start a child workflow */
|
59
|
+
enum StartChildWorkflowExecutionFailedCause {
|
60
|
+
START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED = 0;
|
61
|
+
START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_EXISTS = 1;
|
62
|
+
}
|
63
|
+
|
64
|
+
/**
|
65
|
+
* Controls at which point to report back to lang when a child workflow is cancelled
|
66
|
+
*/
|
67
|
+
enum ChildWorkflowCancellationType {
|
68
|
+
/** Do not request cancellation of the child workflow if already scheduled */
|
69
|
+
ABANDON = 0;
|
70
|
+
/** Initiate a cancellation request and immediately report cancellation to the parent. */
|
71
|
+
TRY_CANCEL = 1;
|
72
|
+
/** Wait for child cancellation completion. */
|
73
|
+
WAIT_CANCELLATION_COMPLETED = 2;
|
74
|
+
/** Request cancellation of the child and wait for confirmation that the request was received. */
|
75
|
+
WAIT_CANCELLATION_REQUESTED = 3;
|
76
|
+
}
|
77
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
package coresdk.common;
|
4
|
+
|
5
|
+
import "google/protobuf/duration.proto";
|
6
|
+
|
7
|
+
// Identifying information about a particular workflow execution, including namespace
|
8
|
+
message NamespacedWorkflowExecution {
|
9
|
+
// Namespace the workflow run is located in
|
10
|
+
string namespace = 1;
|
11
|
+
// Can never be empty
|
12
|
+
string workflow_id = 2;
|
13
|
+
// May be empty if the most recent run of the workflow with the given ID is being targeted
|
14
|
+
string run_id = 3;
|
15
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
package coresdk;
|
4
|
+
|
5
|
+
// Note: Intellij will think the Google imports don't work because of the slightly odd nature of
|
6
|
+
// the include paths. You can make it work by going to the "Protobuf Support" settings section
|
7
|
+
// and adding the "api_upstream" subdir as an include path.
|
8
|
+
import "google/protobuf/duration.proto";
|
9
|
+
import "google/protobuf/empty.proto";
|
10
|
+
import "google/protobuf/timestamp.proto";
|
11
|
+
import "temporal/api/common/v1/message.proto";
|
12
|
+
import "temporal/sdk/core/activity_result/activity_result.proto";
|
13
|
+
import "temporal/sdk/core/activity_task/activity_task.proto";
|
14
|
+
import "temporal/sdk/core/common/common.proto";
|
15
|
+
import "temporal/sdk/core/external_data/external_data.proto";
|
16
|
+
import "temporal/sdk/core/workflow_activation/workflow_activation.proto";
|
17
|
+
import "temporal/sdk/core/workflow_commands/workflow_commands.proto";
|
18
|
+
import "temporal/sdk/core/workflow_completion/workflow_completion.proto";
|
19
|
+
|
20
|
+
// A request as given to `record_activity_heartbeat`
|
21
|
+
message ActivityHeartbeat {
|
22
|
+
bytes task_token = 1;
|
23
|
+
repeated temporal.api.common.v1.Payload details = 2;
|
24
|
+
}
|
25
|
+
|
26
|
+
// A request as given to `complete_activity_task`
|
27
|
+
message ActivityTaskCompletion {
|
28
|
+
bytes task_token = 1;
|
29
|
+
activity_result.ActivityExecutionResult result = 2;
|
30
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
package coresdk.external_data;
|
4
|
+
|
5
|
+
import "google/protobuf/duration.proto";
|
6
|
+
import "google/protobuf/timestamp.proto";
|
7
|
+
|
8
|
+
// This file defines data that Core might write externally. The first motivating case being
|
9
|
+
// storing data in markers in event history. Defining such data as protos provides an easy way
|
10
|
+
// for consumers which would like to just depend on the proto package to make sense of marker data.
|
11
|
+
|
12
|
+
message LocalActivityMarkerData {
|
13
|
+
uint32 seq = 1;
|
14
|
+
// The number of attempts at execution before we recorded this result. Typically starts at 1,
|
15
|
+
// but it is possible to start at a higher number when backing off using a timer.
|
16
|
+
uint32 attempt = 2;
|
17
|
+
string activity_id = 3;
|
18
|
+
string activity_type = 4;
|
19
|
+
// You can think of this as "perceived completion time". It is the time the local activity thought
|
20
|
+
// it was when it completed. Which could be different from wall-clock time because of workflow
|
21
|
+
// replay. It's the WFT start time + the LA's runtime
|
22
|
+
google.protobuf.Timestamp complete_time = 5;
|
23
|
+
// If set, this local activity conceptually is retrying after the specified backoff.
|
24
|
+
// Implementation wise, they are really two different LA machines, but with the same type & input.
|
25
|
+
// The retry starts with an attempt number > 1.
|
26
|
+
google.protobuf.Duration backoff = 6;
|
27
|
+
// The time the LA was originally scheduled (wall clock time). This is used to track
|
28
|
+
// schedule-to-close timeouts when timer-based backoffs are used
|
29
|
+
google.protobuf.Timestamp original_schedule_time = 7;
|
30
|
+
}
|
data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto
ADDED
@@ -0,0 +1,261 @@
|
|
1
|
+
syntax = "proto3";
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Definitions of the different workflow activation jobs returned from [crate::Core::poll_task]. The
|
5
|
+
* lang SDK applies these activation jobs to drive workflows.
|
6
|
+
*/
|
7
|
+
package coresdk.workflow_activation;
|
8
|
+
|
9
|
+
import "google/protobuf/timestamp.proto";
|
10
|
+
import "google/protobuf/duration.proto";
|
11
|
+
import "temporal/api/failure/v1/message.proto";
|
12
|
+
import "temporal/api/common/v1/message.proto";
|
13
|
+
import "temporal/api/enums/v1/workflow.proto";
|
14
|
+
import "temporal/sdk/core/activity_result/activity_result.proto";
|
15
|
+
import "temporal/sdk/core/child_workflow/child_workflow.proto";
|
16
|
+
import "temporal/sdk/core/common/common.proto";
|
17
|
+
|
18
|
+
/// An instruction to the lang sdk to run some workflow code, whether for the first time or from
|
19
|
+
/// a cached state.
|
20
|
+
message WorkflowActivation {
|
21
|
+
/// The id of the currently active run of the workflow. Also used as a cache key. There may
|
22
|
+
/// only ever be one active workflow task (and hence activation) of a run at one time.
|
23
|
+
string run_id = 1;
|
24
|
+
/// The current time as understood by the workflow, which is set by workflow task started events
|
25
|
+
google.protobuf.Timestamp timestamp = 2;
|
26
|
+
/// Whether or not the activation is replaying past events
|
27
|
+
bool is_replaying = 3;
|
28
|
+
/// Current history length as determined by the event id of the most recently processed event.
|
29
|
+
/// This ensures that the number is always deterministic
|
30
|
+
uint32 history_length = 4;
|
31
|
+
/// The things to do upon activating the workflow
|
32
|
+
repeated WorkflowActivationJob jobs = 5;
|
33
|
+
}
|
34
|
+
|
35
|
+
message WorkflowActivationJob {
|
36
|
+
oneof variant {
|
37
|
+
/// Begin a workflow for the first time
|
38
|
+
StartWorkflow start_workflow = 1;
|
39
|
+
/// A timer has fired, allowing whatever was waiting on it (if anything) to proceed
|
40
|
+
FireTimer fire_timer = 2;
|
41
|
+
/// Workflow was reset. The randomness seed must be updated.
|
42
|
+
UpdateRandomSeed update_random_seed = 4;
|
43
|
+
/// A request to query the workflow was received.
|
44
|
+
QueryWorkflow query_workflow = 5;
|
45
|
+
/// A request to cancel the workflow was received.
|
46
|
+
CancelWorkflow cancel_workflow = 6;
|
47
|
+
/// A request to signal the workflow was received.
|
48
|
+
SignalWorkflow signal_workflow = 7;
|
49
|
+
/// An activity was resolved, result could be completed, failed or cancelled
|
50
|
+
ResolveActivity resolve_activity = 8;
|
51
|
+
/// A patch marker has been detected and lang is being told that change exists. This
|
52
|
+
/// job is strange in that it is sent pre-emptively to lang without any corresponding
|
53
|
+
/// command being sent first.
|
54
|
+
NotifyHasPatch notify_has_patch = 9;
|
55
|
+
/// A child workflow execution has started or failed to start
|
56
|
+
ResolveChildWorkflowExecutionStart resolve_child_workflow_execution_start = 10;
|
57
|
+
/// A child workflow was resolved, result could be completed or failed
|
58
|
+
ResolveChildWorkflowExecution resolve_child_workflow_execution = 11;
|
59
|
+
/// An attempt to signal an external workflow resolved
|
60
|
+
ResolveSignalExternalWorkflow resolve_signal_external_workflow = 12;
|
61
|
+
/// An attempt to cancel an external workflow resolved
|
62
|
+
ResolveRequestCancelExternalWorkflow resolve_request_cancel_external_workflow = 13;
|
63
|
+
/// Remove the workflow identified by the [WorkflowActivation] containing this job from the cache
|
64
|
+
/// after performing the activation.
|
65
|
+
///
|
66
|
+
/// If other job variant are present in the list, this variant will be the last job in the
|
67
|
+
/// job list. The string value is a reason for eviction.
|
68
|
+
RemoveFromCache remove_from_cache = 50;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
// Start a new workflow
|
73
|
+
message StartWorkflow {
|
74
|
+
// The identifier the lang-specific sdk uses to execute workflow code
|
75
|
+
string workflow_type = 1;
|
76
|
+
// The workflow id used on the temporal server
|
77
|
+
string workflow_id = 2;
|
78
|
+
// Inputs to the workflow code
|
79
|
+
repeated temporal.api.common.v1.Payload arguments = 3;
|
80
|
+
// The seed must be used to initialize the random generator used by SDK.
|
81
|
+
// RandomSeedUpdatedAttributes are used to deliver seed updates.
|
82
|
+
uint64 randomness_seed = 4;
|
83
|
+
// Used to add metadata e.g. for tracing and auth, meant to be read and written to by interceptors.
|
84
|
+
map<string, temporal.api.common.v1.Payload> headers = 5;
|
85
|
+
// Identity of the client who requested this execution
|
86
|
+
string identity = 6;
|
87
|
+
// If this workflow is a child, information about the parent
|
88
|
+
common.NamespacedWorkflowExecution parent_workflow_info = 7;
|
89
|
+
// Total workflow execution timeout including retries and continue as new.
|
90
|
+
google.protobuf.Duration workflow_execution_timeout = 8;
|
91
|
+
// Timeout of a single workflow run.
|
92
|
+
google.protobuf.Duration workflow_run_timeout = 9;
|
93
|
+
// Timeout of a single workflow task.
|
94
|
+
google.protobuf.Duration workflow_task_timeout = 10;
|
95
|
+
// Run id of the previous workflow which continued-as-new or retired or cron executed into this
|
96
|
+
// workflow, if any.
|
97
|
+
string continued_from_execution_run_id = 11;
|
98
|
+
// If this workflow was a continuation, indicates the type of continuation.
|
99
|
+
temporal.api.enums.v1.ContinueAsNewInitiator continued_initiator = 12;
|
100
|
+
// If this workflow was a continuation and that continuation failed, the details of that.
|
101
|
+
temporal.api.failure.v1.Failure continued_failure = 13;
|
102
|
+
// If this workflow was a continuation and that continuation completed, the details of that.
|
103
|
+
temporal.api.common.v1.Payloads last_completion_result = 14;
|
104
|
+
// This is the very first run id the workflow ever had, following continuation chains.
|
105
|
+
string first_execution_run_id = 15;
|
106
|
+
// This workflow's retry policy
|
107
|
+
temporal.api.common.v1.RetryPolicy retry_policy = 16;
|
108
|
+
// Starting at 1, the number of times we have tried to execute this workflow
|
109
|
+
int32 attempt = 17;
|
110
|
+
// If this workflow runs on a cron schedule, it will appear here
|
111
|
+
string cron_schedule = 18;
|
112
|
+
// The absolute time at which the workflow will be timed out.
|
113
|
+
// This is passed without change to the next run/retry of a workflow.
|
114
|
+
google.protobuf.Timestamp workflow_execution_expiration_time = 19;
|
115
|
+
// For a cron workflow, this contains the amount of time between when this iteration of
|
116
|
+
// the cron workflow was scheduled and when it should run next per its cron_schedule.
|
117
|
+
google.protobuf.Duration cron_schedule_to_schedule_interval = 20;
|
118
|
+
// User-defined memo
|
119
|
+
temporal.api.common.v1.Memo memo = 21;
|
120
|
+
// Search attributes created/updated when this workflow was started
|
121
|
+
temporal.api.common.v1.SearchAttributes search_attributes = 22;
|
122
|
+
}
|
123
|
+
|
124
|
+
/// Notify a workflow that a timer has fired
|
125
|
+
message FireTimer {
|
126
|
+
/// Sequence number as provided by lang in the corresponding StartTimer command
|
127
|
+
uint32 seq = 1;
|
128
|
+
}
|
129
|
+
|
130
|
+
/// Notify a workflow that an activity has been resolved
|
131
|
+
message ResolveActivity {
|
132
|
+
/// Sequence number as provided by lang in the corresponding ScheduleActivity command
|
133
|
+
uint32 seq = 1;
|
134
|
+
activity_result.ActivityResolution result = 2;
|
135
|
+
}
|
136
|
+
|
137
|
+
/// Notify a workflow that a start child workflow execution request has succeeded, failed or was
|
138
|
+
/// cancelled.
|
139
|
+
message ResolveChildWorkflowExecutionStart {
|
140
|
+
/// Sequence number as provided by lang in the corresponding StartChildWorkflowExecution command
|
141
|
+
uint32 seq = 1;
|
142
|
+
oneof status {
|
143
|
+
ResolveChildWorkflowExecutionStartSuccess succeeded = 2;
|
144
|
+
ResolveChildWorkflowExecutionStartFailure failed = 3;
|
145
|
+
ResolveChildWorkflowExecutionStartCancelled cancelled = 4;
|
146
|
+
}
|
147
|
+
}
|
148
|
+
|
149
|
+
/// Simply pass the run_id to lang
|
150
|
+
message ResolveChildWorkflowExecutionStartSuccess {
|
151
|
+
string run_id = 1;
|
152
|
+
}
|
153
|
+
|
154
|
+
/// Provide lang the cause of failure
|
155
|
+
message ResolveChildWorkflowExecutionStartFailure {
|
156
|
+
/// Lang should have this information but it's more convenient to pass it back
|
157
|
+
/// for error construction on the lang side.
|
158
|
+
string workflow_id = 1;
|
159
|
+
string workflow_type = 2;
|
160
|
+
child_workflow.StartChildWorkflowExecutionFailedCause cause = 3;
|
161
|
+
}
|
162
|
+
|
163
|
+
/// `failure` should be ChildWorkflowFailure with cause set to CancelledFailure.
|
164
|
+
/// The failure is constructed in core for lang's convenience.
|
165
|
+
message ResolveChildWorkflowExecutionStartCancelled {
|
166
|
+
temporal.api.failure.v1.Failure failure = 1;
|
167
|
+
}
|
168
|
+
|
169
|
+
/// Notify a workflow that a child workflow execution has been resolved
|
170
|
+
message ResolveChildWorkflowExecution {
|
171
|
+
/// Sequence number as provided by lang in the corresponding StartChildWorkflowExecution command
|
172
|
+
uint32 seq = 1;
|
173
|
+
child_workflow.ChildWorkflowResult result = 2;
|
174
|
+
}
|
175
|
+
|
176
|
+
/// Update the workflow's random seed
|
177
|
+
message UpdateRandomSeed {
|
178
|
+
uint64 randomness_seed = 1;
|
179
|
+
}
|
180
|
+
|
181
|
+
/// Query a workflow
|
182
|
+
message QueryWorkflow {
|
183
|
+
/// For PollWFTResp `query` field, this will be set to the special value `legacy`. For the
|
184
|
+
/// `queries` field, the server provides a unique identifier. If it is a `legacy` query,
|
185
|
+
/// lang cannot issue any commands in response other than to answer the query.
|
186
|
+
string query_id = 1;
|
187
|
+
/// The query's function/method/etc name
|
188
|
+
string query_type = 2;
|
189
|
+
repeated temporal.api.common.v1.Payload arguments = 3;
|
190
|
+
/// Headers attached to the query
|
191
|
+
map<string, temporal.api.common.v1.Payload> headers = 5;
|
192
|
+
}
|
193
|
+
|
194
|
+
/// Cancel a running workflow
|
195
|
+
message CancelWorkflow {
|
196
|
+
/// Information from the cancellation request
|
197
|
+
repeated temporal.api.common.v1.Payload details = 1;
|
198
|
+
}
|
199
|
+
|
200
|
+
// Send a signal to a workflow
|
201
|
+
message SignalWorkflow {
|
202
|
+
string signal_name = 1;
|
203
|
+
repeated temporal.api.common.v1.Payload input = 2;
|
204
|
+
// Identity of the sender of the signal
|
205
|
+
string identity = 3;
|
206
|
+
// Headers attached to the signal
|
207
|
+
map<string, temporal.api.common.v1.Payload> headers = 5;
|
208
|
+
}
|
209
|
+
|
210
|
+
// Inform lang what the result of a call to `patched` or similar API should be -- this is always
|
211
|
+
// sent pre-emptively, so any time it is sent the change is present
|
212
|
+
message NotifyHasPatch {
|
213
|
+
string patch_id = 1;
|
214
|
+
}
|
215
|
+
|
216
|
+
message ResolveSignalExternalWorkflow {
|
217
|
+
/// Sequence number as provided by lang in the corresponding SignalExternalWorkflowExecution
|
218
|
+
/// command
|
219
|
+
uint32 seq = 1;
|
220
|
+
/// If populated, this signal either failed to be sent or was cancelled depending on failure
|
221
|
+
/// type / info.
|
222
|
+
temporal.api.failure.v1.Failure failure = 2;
|
223
|
+
}
|
224
|
+
|
225
|
+
message ResolveRequestCancelExternalWorkflow {
|
226
|
+
/// Sequence number as provided by lang in the corresponding
|
227
|
+
/// RequestCancelExternalWorkflowExecution command
|
228
|
+
uint32 seq = 1;
|
229
|
+
/// If populated, this signal either failed to be sent or was cancelled depending on failure
|
230
|
+
/// type / info.
|
231
|
+
temporal.api.failure.v1.Failure failure = 2;
|
232
|
+
}
|
233
|
+
|
234
|
+
message RemoveFromCache {
|
235
|
+
string message = 1;
|
236
|
+
|
237
|
+
enum EvictionReason {
|
238
|
+
UNSPECIFIED = 0;
|
239
|
+
// Workflow cache is full
|
240
|
+
CACHE_FULL = 1;
|
241
|
+
// Workflow received a partial task but was not in the cache. Typically it won't be in the
|
242
|
+
// lang cache either at this point, but we send an eviction to be sure.
|
243
|
+
CACHE_MISS = 2;
|
244
|
+
// The workflow produced results inconsistent with history.
|
245
|
+
NONDETERMINISM = 3;
|
246
|
+
// The lang side completed the workflow activation with a failure.
|
247
|
+
LANG_FAIL = 4;
|
248
|
+
// The lang side explicitly requested this workflow be evicted.
|
249
|
+
LANG_REQUESTED = 5;
|
250
|
+
// The workflow task we tried to respond to didn't exist. The workflow might have already
|
251
|
+
// finished, or the WFT timed out but we didn't learn about that yet.
|
252
|
+
TASK_NOT_FOUND = 6;
|
253
|
+
// There was new work that must be handled while we attempted to complete the WFT. Ex:
|
254
|
+
// a new signal came in while trying to complete the workflow.
|
255
|
+
UNHANDLED_COMMAND = 7;
|
256
|
+
// There was some fatal error processing the workflow, typically an internal error, but
|
257
|
+
// can also happen if then network drops out while paginating. Check message string.
|
258
|
+
FATAL = 8;
|
259
|
+
}
|
260
|
+
EvictionReason reason = 2;
|
261
|
+
}
|