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,50 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
package temporal.api.enums.v1;
|
26
|
+
|
27
|
+
option go_package = "go.temporal.io/api/enums/v1;enums";
|
28
|
+
option java_package = "io.temporal.api.enums.v1";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "QueryProto";
|
31
|
+
option ruby_package = "Temporal::Api::Enums::V1";
|
32
|
+
option csharp_namespace = "Temporal.Api.Enums.V1";
|
33
|
+
|
34
|
+
enum QueryResultType {
|
35
|
+
QUERY_RESULT_TYPE_UNSPECIFIED = 0;
|
36
|
+
QUERY_RESULT_TYPE_ANSWERED = 1;
|
37
|
+
QUERY_RESULT_TYPE_FAILED = 2;
|
38
|
+
}
|
39
|
+
|
40
|
+
enum QueryRejectCondition {
|
41
|
+
QUERY_REJECT_CONDITION_UNSPECIFIED = 0;
|
42
|
+
// None indicates that query should not be rejected.
|
43
|
+
QUERY_REJECT_CONDITION_NONE = 1;
|
44
|
+
// NotOpen indicates that query should be rejected if workflow is not open.
|
45
|
+
QUERY_REJECT_CONDITION_NOT_OPEN = 2;
|
46
|
+
// NotCompletedCleanly indicates that query should be rejected if workflow did not complete cleanly.
|
47
|
+
QUERY_REJECT_CONDITION_NOT_COMPLETED_CLEANLY = 3;
|
48
|
+
}
|
49
|
+
|
50
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
package temporal.api.enums.v1;
|
26
|
+
|
27
|
+
option go_package = "go.temporal.io/api/enums/v1;enums";
|
28
|
+
option java_package = "io.temporal.api.enums.v1";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "ResetProto";
|
31
|
+
option ruby_package = "Temporal::Api::Enums::V1";
|
32
|
+
option csharp_namespace = "Temporal.Api.Enums.V1";
|
33
|
+
|
34
|
+
// Reset reapplay(replay) options
|
35
|
+
// * RESET_REAPPLY_TYPE_SIGNAL (default) - Signals are reapplied when workflow is reset
|
36
|
+
// * RESET_REAPPLY_TYPE_NONE - nothing is reapplied
|
37
|
+
enum ResetReapplyType {
|
38
|
+
RESET_REAPPLY_TYPE_UNSPECIFIED = 0;
|
39
|
+
RESET_REAPPLY_TYPE_SIGNAL = 1;
|
40
|
+
RESET_REAPPLY_TYPE_NONE = 2;
|
41
|
+
}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
package temporal.api.enums.v1;
|
26
|
+
|
27
|
+
option go_package = "go.temporal.io/api/enums/v1;enums";
|
28
|
+
option java_package = "io.temporal.api.enums.v1";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "ScheduleProto";
|
31
|
+
option ruby_package = "Temporal::Api::Enums::V1";
|
32
|
+
option csharp_namespace = "Temporal.Api.Enums.V1";
|
33
|
+
|
34
|
+
|
35
|
+
// ScheduleOverlapPolicy controls what happens when a workflow would be started
|
36
|
+
// by a schedule, and is already running.
|
37
|
+
enum ScheduleOverlapPolicy {
|
38
|
+
SCHEDULE_OVERLAP_POLICY_UNSPECIFIED = 0;
|
39
|
+
// SCHEDULE_OVERLAP_POLICY_SKIP (default) means don't start anything. When the
|
40
|
+
// workflow completes, the next scheduled event after that time will be considered.
|
41
|
+
SCHEDULE_OVERLAP_POLICY_SKIP = 1;
|
42
|
+
// SCHEDULE_OVERLAP_POLICY_BUFFER_ONE means start the workflow again soon as the
|
43
|
+
// current one completes, but only buffer one start in this way. If another start is
|
44
|
+
// supposed to happen when the workflow is running, and one is already buffered, then
|
45
|
+
// only the first one will be started after the running workflow finishes.
|
46
|
+
SCHEDULE_OVERLAP_POLICY_BUFFER_ONE = 2;
|
47
|
+
// SCHEDULE_OVERLAP_POLICY_BUFFER_ALL means buffer up any number of starts to all
|
48
|
+
// happen sequentially, immediately after the running workflow completes.
|
49
|
+
SCHEDULE_OVERLAP_POLICY_BUFFER_ALL = 3;
|
50
|
+
// SCHEDULE_OVERLAP_POLICY_CANCEL_OTHER means that if there is another workflow
|
51
|
+
// running, cancel it, and start the new one after the old one completes cancellation.
|
52
|
+
SCHEDULE_OVERLAP_POLICY_CANCEL_OTHER = 4;
|
53
|
+
// SCHEDULE_OVERLAP_POLICY_TERMINATE_OTHER means that if there is another workflow
|
54
|
+
// running, terminate it and start the new one immediately.
|
55
|
+
SCHEDULE_OVERLAP_POLICY_TERMINATE_OTHER = 5;
|
56
|
+
// SCHEDULE_OVERLAP_POLICY_ALLOW_ALL means start any number of concurrent workflows.
|
57
|
+
// Note that with this policy, last completion result and last failure will not be
|
58
|
+
// available since workflows are not sequential.
|
59
|
+
SCHEDULE_OVERLAP_POLICY_ALLOW_ALL = 6;
|
60
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
package temporal.api.enums.v1;
|
26
|
+
|
27
|
+
option go_package = "go.temporal.io/api/enums/v1;enums";
|
28
|
+
option java_package = "io.temporal.api.enums.v1";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "TaskQueueProto";
|
31
|
+
option ruby_package = "Temporal::Api::Enums::V1";
|
32
|
+
option csharp_namespace = "Temporal.Api.Enums.V1";
|
33
|
+
|
34
|
+
enum TaskQueueKind {
|
35
|
+
TASK_QUEUE_KIND_UNSPECIFIED = 0;
|
36
|
+
// Tasks from a normal workflow task queue always include complete workflow history
|
37
|
+
//
|
38
|
+
// The task queue specified by the user is always a normal task queue. There can be as many
|
39
|
+
// workers as desired for a single normal task queue. All those workers may pick up tasks from
|
40
|
+
// that queue.
|
41
|
+
TASK_QUEUE_KIND_NORMAL = 1;
|
42
|
+
// A sticky queue only includes new history since the last workflow task, and they are
|
43
|
+
// per-worker.
|
44
|
+
//
|
45
|
+
// Sticky queues are created dynamically by each worker during their start up. They only exist
|
46
|
+
// for the lifetime of the worker process. Tasks in a sticky task queue are only available to
|
47
|
+
// the worker that created the sticky queue.
|
48
|
+
//
|
49
|
+
// Sticky queues are only for workflow tasks. There are no sticky task queues for activities.
|
50
|
+
TASK_QUEUE_KIND_STICKY = 2;
|
51
|
+
}
|
52
|
+
|
53
|
+
enum TaskQueueType {
|
54
|
+
TASK_QUEUE_TYPE_UNSPECIFIED = 0;
|
55
|
+
// Workflow type of task queue.
|
56
|
+
TASK_QUEUE_TYPE_WORKFLOW = 1;
|
57
|
+
// Activity type of task queue.
|
58
|
+
TASK_QUEUE_TYPE_ACTIVITY = 2;
|
59
|
+
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
package temporal.api.enums.v1;
|
26
|
+
|
27
|
+
option go_package = "go.temporal.io/api/enums/v1;enums";
|
28
|
+
option java_package = "io.temporal.api.enums.v1";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "UpdateProto";
|
31
|
+
option ruby_package = "Temporal::Api::Enums::V1";
|
32
|
+
option csharp_namespace = "Temporal.Api.Enums.V1";
|
33
|
+
|
34
|
+
enum WorkflowUpdateResultAccessStyle {
|
35
|
+
WORKFLOW_UPDATE_RESULT_ACCESS_STYLE_UNSPECIFIED = 0;
|
36
|
+
|
37
|
+
// Indicates that the update response _must_ be included as part of the gRPC
|
38
|
+
// response body
|
39
|
+
WORKFLOW_UPDATE_RESULT_ACCESS_STYLE_REQUIRE_INLINE = 1;
|
40
|
+
}
|
41
|
+
|
42
|
+
enum WorkflowUpdateDurabilityPreference {
|
43
|
+
// The workflow expresses no preference as to the durability of the
|
44
|
+
// the associated update.
|
45
|
+
WORKFLOW_UPDATE_DURABILITY_PREFERENCE_UNSPECIFIED = 0;
|
46
|
+
|
47
|
+
// Used by a workflow to indicate that no workflow state mutation occurred
|
48
|
+
// while processing the update and that it wishes that the update not be
|
49
|
+
// made durable (and thus not take up space in workflow history).
|
50
|
+
WORKFLOW_UPDATE_DURABILITY_PREFERENCE_BYPASS = 1;
|
51
|
+
}
|
@@ -0,0 +1,122 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
package temporal.api.enums.v1;
|
26
|
+
|
27
|
+
option go_package = "go.temporal.io/api/enums/v1;enums";
|
28
|
+
option java_package = "io.temporal.api.enums.v1";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "WorkflowProto";
|
31
|
+
option ruby_package = "Temporal::Api::Enums::V1";
|
32
|
+
option csharp_namespace = "Temporal.Api.Enums.V1";
|
33
|
+
|
34
|
+
// Defines how new runs of a workflow with a particular ID may or may not be allowed. Note that
|
35
|
+
// it is *never* valid to have two actively running instances of the same workflow id.
|
36
|
+
enum WorkflowIdReusePolicy {
|
37
|
+
WORKFLOW_ID_REUSE_POLICY_UNSPECIFIED = 0;
|
38
|
+
// Allow starting a workflow execution using the same workflow id.
|
39
|
+
WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE = 1;
|
40
|
+
// Allow starting a workflow execution using the same workflow id, only when the last
|
41
|
+
// execution's final state is one of [terminated, cancelled, timed out, failed].
|
42
|
+
WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE_FAILED_ONLY = 2;
|
43
|
+
// Do not permit re-use of the workflow id for this workflow. Future start workflow requests
|
44
|
+
// could potentially change the policy, allowing re-use of the workflow id.
|
45
|
+
WORKFLOW_ID_REUSE_POLICY_REJECT_DUPLICATE = 3;
|
46
|
+
// If a workflow is running using the same workflow ID, terminate it and start a new one.
|
47
|
+
// If no running workflow, then the behavior is the same as ALLOW_DUPLICATE
|
48
|
+
WORKFLOW_ID_REUSE_POLICY_TERMINATE_IF_RUNNING = 4;
|
49
|
+
}
|
50
|
+
|
51
|
+
// Defines how child workflows will react to their parent completing
|
52
|
+
enum ParentClosePolicy {
|
53
|
+
PARENT_CLOSE_POLICY_UNSPECIFIED = 0;
|
54
|
+
// The child workflow will also terminate
|
55
|
+
PARENT_CLOSE_POLICY_TERMINATE = 1;
|
56
|
+
// The child workflow will do nothing
|
57
|
+
PARENT_CLOSE_POLICY_ABANDON = 2;
|
58
|
+
// Cancellation will be requested of the child workflow
|
59
|
+
PARENT_CLOSE_POLICY_REQUEST_CANCEL = 3;
|
60
|
+
}
|
61
|
+
|
62
|
+
enum ContinueAsNewInitiator {
|
63
|
+
CONTINUE_AS_NEW_INITIATOR_UNSPECIFIED = 0;
|
64
|
+
// The workflow itself requested to continue as new
|
65
|
+
CONTINUE_AS_NEW_INITIATOR_WORKFLOW = 1;
|
66
|
+
// The workflow continued as new because it is retrying
|
67
|
+
CONTINUE_AS_NEW_INITIATOR_RETRY = 2;
|
68
|
+
// The workflow continued as new because cron has triggered a new execution
|
69
|
+
CONTINUE_AS_NEW_INITIATOR_CRON_SCHEDULE = 3;
|
70
|
+
}
|
71
|
+
|
72
|
+
// (-- api-linter: core::0216::synonyms=disabled
|
73
|
+
// aip.dev/not-precedent: There is WorkflowExecutionState already in another package. --)
|
74
|
+
enum WorkflowExecutionStatus {
|
75
|
+
WORKFLOW_EXECUTION_STATUS_UNSPECIFIED = 0;
|
76
|
+
// Value 1 is hardcoded in SQL persistence.
|
77
|
+
WORKFLOW_EXECUTION_STATUS_RUNNING = 1;
|
78
|
+
WORKFLOW_EXECUTION_STATUS_COMPLETED = 2;
|
79
|
+
WORKFLOW_EXECUTION_STATUS_FAILED = 3;
|
80
|
+
WORKFLOW_EXECUTION_STATUS_CANCELED = 4;
|
81
|
+
WORKFLOW_EXECUTION_STATUS_TERMINATED = 5;
|
82
|
+
WORKFLOW_EXECUTION_STATUS_CONTINUED_AS_NEW = 6;
|
83
|
+
WORKFLOW_EXECUTION_STATUS_TIMED_OUT = 7;
|
84
|
+
}
|
85
|
+
|
86
|
+
enum PendingActivityState {
|
87
|
+
PENDING_ACTIVITY_STATE_UNSPECIFIED = 0;
|
88
|
+
PENDING_ACTIVITY_STATE_SCHEDULED = 1;
|
89
|
+
PENDING_ACTIVITY_STATE_STARTED = 2;
|
90
|
+
PENDING_ACTIVITY_STATE_CANCEL_REQUESTED = 3;
|
91
|
+
}
|
92
|
+
|
93
|
+
enum PendingWorkflowTaskState {
|
94
|
+
PENDING_WORKFLOW_TASK_STATE_UNSPECIFIED = 0;
|
95
|
+
PENDING_WORKFLOW_TASK_STATE_SCHEDULED = 1;
|
96
|
+
PENDING_WORKFLOW_TASK_STATE_STARTED = 2;
|
97
|
+
}
|
98
|
+
|
99
|
+
enum HistoryEventFilterType {
|
100
|
+
HISTORY_EVENT_FILTER_TYPE_UNSPECIFIED = 0;
|
101
|
+
HISTORY_EVENT_FILTER_TYPE_ALL_EVENT = 1;
|
102
|
+
HISTORY_EVENT_FILTER_TYPE_CLOSE_EVENT = 2;
|
103
|
+
}
|
104
|
+
|
105
|
+
enum RetryState {
|
106
|
+
RETRY_STATE_UNSPECIFIED = 0;
|
107
|
+
RETRY_STATE_IN_PROGRESS = 1;
|
108
|
+
RETRY_STATE_NON_RETRYABLE_FAILURE = 2;
|
109
|
+
RETRY_STATE_TIMEOUT = 3;
|
110
|
+
RETRY_STATE_MAXIMUM_ATTEMPTS_REACHED = 4;
|
111
|
+
RETRY_STATE_RETRY_POLICY_NOT_SET = 5;
|
112
|
+
RETRY_STATE_INTERNAL_SERVER_ERROR = 6;
|
113
|
+
RETRY_STATE_CANCEL_REQUESTED = 7;
|
114
|
+
}
|
115
|
+
|
116
|
+
enum TimeoutType {
|
117
|
+
TIMEOUT_TYPE_UNSPECIFIED = 0;
|
118
|
+
TIMEOUT_TYPE_START_TO_CLOSE = 1;
|
119
|
+
TIMEOUT_TYPE_SCHEDULE_TO_START = 2;
|
120
|
+
TIMEOUT_TYPE_SCHEDULE_TO_CLOSE = 3;
|
121
|
+
TIMEOUT_TYPE_HEARTBEAT = 4;
|
122
|
+
}
|
@@ -0,0 +1,108 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
// These error details are supplied in google.rpc.Status#details as described in "Google APIs, Error Model" (https://cloud.google.com/apis/design/errors#error_model)
|
26
|
+
// and extend standard Error Details defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/error_details.proto
|
27
|
+
|
28
|
+
package temporal.api.errordetails.v1;
|
29
|
+
|
30
|
+
option go_package = "go.temporal.io/api/errordetails/v1;errordetails";
|
31
|
+
option java_package = "io.temporal.api.errordetails.v1";
|
32
|
+
option java_multiple_files = true;
|
33
|
+
option java_outer_classname = "MessageProto";
|
34
|
+
option ruby_package = "Temporal::Api::ErrorDetails::V1";
|
35
|
+
option csharp_namespace = "Temporal.Api.ErrorDetails.V1";
|
36
|
+
|
37
|
+
import "temporal/api/common/v1/message.proto";
|
38
|
+
|
39
|
+
import "temporal/api/enums/v1/failed_cause.proto";
|
40
|
+
import "temporal/api/enums/v1/namespace.proto";
|
41
|
+
|
42
|
+
message NotFoundFailure {
|
43
|
+
string current_cluster = 1;
|
44
|
+
string active_cluster = 2;
|
45
|
+
}
|
46
|
+
|
47
|
+
message WorkflowExecutionAlreadyStartedFailure {
|
48
|
+
string start_request_id = 1;
|
49
|
+
string run_id = 2;
|
50
|
+
}
|
51
|
+
|
52
|
+
message NamespaceNotActiveFailure {
|
53
|
+
string namespace = 1;
|
54
|
+
string current_cluster = 2;
|
55
|
+
string active_cluster = 3;
|
56
|
+
}
|
57
|
+
|
58
|
+
message NamespaceInvalidStateFailure {
|
59
|
+
string namespace = 1;
|
60
|
+
// Current state of the requested namespace.
|
61
|
+
temporal.api.enums.v1.NamespaceState state = 2;
|
62
|
+
// Allowed namespace states for requested operation.
|
63
|
+
// For example NAMESPACE_STATE_DELETED is forbidden for most operations but allowed for DescribeNamespace.
|
64
|
+
repeated temporal.api.enums.v1.NamespaceState allowed_states = 3;
|
65
|
+
}
|
66
|
+
|
67
|
+
message NamespaceNotFoundFailure {
|
68
|
+
string namespace = 1;
|
69
|
+
}
|
70
|
+
|
71
|
+
message NamespaceAlreadyExistsFailure {
|
72
|
+
}
|
73
|
+
|
74
|
+
message ClientVersionNotSupportedFailure {
|
75
|
+
string client_version = 1;
|
76
|
+
string client_name = 2;
|
77
|
+
string supported_versions = 3;
|
78
|
+
}
|
79
|
+
|
80
|
+
message ServerVersionNotSupportedFailure {
|
81
|
+
string server_version = 1;
|
82
|
+
string client_supported_server_versions = 2;
|
83
|
+
}
|
84
|
+
|
85
|
+
message CancellationAlreadyRequestedFailure {
|
86
|
+
}
|
87
|
+
|
88
|
+
message QueryFailedFailure {
|
89
|
+
}
|
90
|
+
|
91
|
+
message PermissionDeniedFailure {
|
92
|
+
string reason = 1;
|
93
|
+
}
|
94
|
+
|
95
|
+
message ResourceExhaustedFailure {
|
96
|
+
temporal.api.enums.v1.ResourceExhaustedCause cause = 1;
|
97
|
+
}
|
98
|
+
|
99
|
+
message SystemWorkflowFailure {
|
100
|
+
// WorkflowId and RunId of the Temporal system workflow performing the underlying operation.
|
101
|
+
// Looking up the info of the system workflow run may help identify the issue causing the failure.
|
102
|
+
temporal.api.common.v1.WorkflowExecution workflow_execution = 1;
|
103
|
+
// Serialized error returned by the system workflow performing the underlying operation.
|
104
|
+
string workflow_error = 2;
|
105
|
+
}
|
106
|
+
|
107
|
+
message WorkflowNotReadyFailure {
|
108
|
+
}
|
@@ -0,0 +1,114 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
package temporal.api.failure.v1;
|
26
|
+
|
27
|
+
option go_package = "go.temporal.io/api/failure/v1;failure";
|
28
|
+
option java_package = "io.temporal.api.failure.v1";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "MessageProto";
|
31
|
+
option ruby_package = "Temporal::Api::Failure::V1";
|
32
|
+
option csharp_namespace = "Temporal.Api.Failure.V1";
|
33
|
+
|
34
|
+
import "temporal/api/common/v1/message.proto";
|
35
|
+
import "temporal/api/enums/v1/workflow.proto";
|
36
|
+
|
37
|
+
message ApplicationFailureInfo {
|
38
|
+
string type = 1;
|
39
|
+
bool non_retryable = 2;
|
40
|
+
temporal.api.common.v1.Payloads details = 3;
|
41
|
+
}
|
42
|
+
|
43
|
+
message TimeoutFailureInfo {
|
44
|
+
temporal.api.enums.v1.TimeoutType timeout_type = 1;
|
45
|
+
temporal.api.common.v1.Payloads last_heartbeat_details = 2;
|
46
|
+
}
|
47
|
+
|
48
|
+
message CanceledFailureInfo {
|
49
|
+
temporal.api.common.v1.Payloads details = 1;
|
50
|
+
}
|
51
|
+
|
52
|
+
message TerminatedFailureInfo {
|
53
|
+
}
|
54
|
+
|
55
|
+
message ServerFailureInfo {
|
56
|
+
bool non_retryable = 1;
|
57
|
+
}
|
58
|
+
|
59
|
+
message ResetWorkflowFailureInfo {
|
60
|
+
temporal.api.common.v1.Payloads last_heartbeat_details = 1;
|
61
|
+
}
|
62
|
+
|
63
|
+
message ActivityFailureInfo {
|
64
|
+
int64 scheduled_event_id = 1;
|
65
|
+
int64 started_event_id = 2;
|
66
|
+
string identity = 3;
|
67
|
+
temporal.api.common.v1.ActivityType activity_type = 4;
|
68
|
+
string activity_id = 5;
|
69
|
+
temporal.api.enums.v1.RetryState retry_state = 6;
|
70
|
+
}
|
71
|
+
|
72
|
+
message ChildWorkflowExecutionFailureInfo {
|
73
|
+
string namespace = 1;
|
74
|
+
temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
|
75
|
+
temporal.api.common.v1.WorkflowType workflow_type = 3;
|
76
|
+
int64 initiated_event_id = 4;
|
77
|
+
int64 started_event_id = 5;
|
78
|
+
temporal.api.enums.v1.RetryState retry_state = 6;
|
79
|
+
}
|
80
|
+
|
81
|
+
message Failure {
|
82
|
+
string message = 1;
|
83
|
+
// The source this Failure originated in, e.g. TypeScriptSDK / JavaSDK
|
84
|
+
// In some SDKs this is used to rehydrate the stack trace into an exception object.
|
85
|
+
string source = 2;
|
86
|
+
string stack_trace = 3;
|
87
|
+
// Alternative way to supply `message` and `stack_trace` and possibly other attributes, used for encryption of
|
88
|
+
// errors originating in user code which might contain sensitive information.
|
89
|
+
// The `encoded_attributes` Payload could represent any serializable object, e.g. JSON object or a `Failure` proto
|
90
|
+
// message.
|
91
|
+
//
|
92
|
+
// SDK authors:
|
93
|
+
// - The SDK should provide a default `encodeFailureAttributes` and `decodeFailureAttributes` implementation that:
|
94
|
+
// - Uses a JSON object to represent `{ message, stack_trace }`.
|
95
|
+
// - Overwrites the original message with "Encoded failure" to indicate that more information could be extracted.
|
96
|
+
// - Overwrites the original stack_trace with an empty string.
|
97
|
+
// - The resulting JSON object is converted to Payload using the default PayloadConverter and should be processed
|
98
|
+
// by the user-provided PayloadCodec
|
99
|
+
//
|
100
|
+
// - If there's demand, we could allow overriding the default SDK implementation to encode other opaque Failure attributes.
|
101
|
+
// (-- api-linter: core::0203::optional=disabled --)
|
102
|
+
temporal.api.common.v1.Payload encoded_attributes = 20;
|
103
|
+
Failure cause = 4;
|
104
|
+
oneof failure_info {
|
105
|
+
ApplicationFailureInfo application_failure_info = 5;
|
106
|
+
TimeoutFailureInfo timeout_failure_info = 6;
|
107
|
+
CanceledFailureInfo canceled_failure_info = 7;
|
108
|
+
TerminatedFailureInfo terminated_failure_info = 8;
|
109
|
+
ServerFailureInfo server_failure_info = 9;
|
110
|
+
ResetWorkflowFailureInfo reset_workflow_failure_info = 10;
|
111
|
+
ActivityFailureInfo activity_failure_info = 11;
|
112
|
+
ChildWorkflowExecutionFailureInfo child_workflow_execution_failure_info = 12;
|
113
|
+
}
|
114
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
// The MIT License
|
2
|
+
//
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
4
|
+
//
|
5
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
// of this software and associated documentation files (the "Software"), to deal
|
7
|
+
// in the Software without restriction, including without limitation the rights
|
8
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
// copies of the Software, and to permit persons to whom the Software is
|
10
|
+
// furnished to do so, subject to the following conditions:
|
11
|
+
//
|
12
|
+
// The above copyright notice and this permission notice shall be included in
|
13
|
+
// all copies or substantial portions of the Software.
|
14
|
+
//
|
15
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
// THE SOFTWARE.
|
22
|
+
|
23
|
+
syntax = "proto3";
|
24
|
+
|
25
|
+
package temporal.api.filter.v1;
|
26
|
+
|
27
|
+
option go_package = "go.temporal.io/api/filter/v1;filter";
|
28
|
+
option java_package = "io.temporal.api.filter.v1";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "MessageProto";
|
31
|
+
option ruby_package = "Temporal::Api::Filter::V1";
|
32
|
+
option csharp_namespace = "Temporal.Api.Filter.V1";
|
33
|
+
|
34
|
+
import "google/protobuf/timestamp.proto";
|
35
|
+
|
36
|
+
import "dependencies/gogoproto/gogo.proto";
|
37
|
+
|
38
|
+
import "temporal/api/enums/v1/workflow.proto";
|
39
|
+
|
40
|
+
message WorkflowExecutionFilter {
|
41
|
+
string workflow_id = 1;
|
42
|
+
string run_id = 2;
|
43
|
+
}
|
44
|
+
|
45
|
+
message WorkflowTypeFilter {
|
46
|
+
string name = 1;
|
47
|
+
}
|
48
|
+
|
49
|
+
message StartTimeFilter {
|
50
|
+
google.protobuf.Timestamp earliest_time = 1 [(gogoproto.stdtime) = true];
|
51
|
+
google.protobuf.Timestamp latest_time = 2 [(gogoproto.stdtime) = true];
|
52
|
+
}
|
53
|
+
|
54
|
+
message StatusFilter {
|
55
|
+
temporal.api.enums.v1.WorkflowExecutionStatus status = 1;
|
56
|
+
}
|