temporalio 0.0.0 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +301 -0
- data/bridge/Cargo.lock +2888 -0
- data/bridge/Cargo.toml +27 -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 +104 -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/client/Cargo.toml +40 -0
- data/bridge/sdk-core/client/LICENSE.txt +23 -0
- data/bridge/sdk-core/client/src/lib.rs +1286 -0
- data/bridge/sdk-core/client/src/metrics.rs +165 -0
- data/bridge/sdk-core/client/src/raw.rs +932 -0
- data/bridge/sdk-core/client/src/retry.rs +751 -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 +76 -0
- data/bridge/sdk-core/core/src/abstractions.rs +166 -0
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +1014 -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 +925 -0
- data/bridge/sdk-core/core/src/core_tests/mod.rs +100 -0
- data/bridge/sdk-core/core/src/core_tests/queries.rs +894 -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 +2090 -0
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +515 -0
- data/bridge/sdk-core/core/src/lib.rs +282 -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 +215 -0
- data/bridge/sdk-core/core/src/retry_logic.rs +202 -0
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +190 -0
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +428 -0
- data/bridge/sdk-core/core/src/telemetry/mod.rs +407 -0
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +78 -0
- data/bridge/sdk-core/core/src/test_help/mod.rs +889 -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 +1048 -0
- data/bridge/sdk-core/core/src/worker/activities.rs +481 -0
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +87 -0
- data/bridge/sdk-core/core/src/worker/client.rs +373 -0
- data/bridge/sdk-core/core/src/worker/mod.rs +570 -0
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +37 -0
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +101 -0
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +532 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +907 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +294 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +167 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +858 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +136 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +157 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +129 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +1450 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +316 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +178 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +708 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +439 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +435 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +175 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +242 -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 +1200 -0
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +272 -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 +655 -0
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +1200 -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 +985 -0
- data/bridge/sdk-core/core-api/Cargo.toml +32 -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 +109 -0
- data/bridge/sdk-core/core-api/src/telemetry.rs +147 -0
- data/bridge/sdk-core/core-api/src/worker.rs +148 -0
- data/bridge/sdk-core/etc/deps.svg +162 -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/etc/regen-depgraph.sh +5 -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/evict_while_la_running_no_interference-23_history.bin +0 -0
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
- data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
- data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
- data/bridge/sdk-core/integ-with-otel.sh +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 +9 -0
- data/bridge/sdk-core/protos/api_upstream/build/go.mod +7 -0
- data/bridge/sdk-core/protos/api_upstream/build/go.sum +5 -0
- data/bridge/sdk-core/protos/api_upstream/build/tools.go +29 -0
- data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +141 -0
- data/bridge/sdk-core/protos/api_upstream/go.mod +6 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +89 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +260 -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 +47 -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 +56 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +170 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +118 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/interaction_type.proto +39 -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 +40 -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 +758 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +87 -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 +121 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +80 -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 +379 -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/version/v1/message.proto +59 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +146 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +1168 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +415 -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/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 +263 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +304 -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/interceptors.rs +50 -0
- data/bridge/sdk-core/sdk/src/lib.rs +794 -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 +694 -0
- data/bridge/sdk-core/sdk/src/workflow_future.rs +499 -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 +107 -0
- data/bridge/sdk-core/sdk-core-protos/src/constants.rs +7 -0
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +544 -0
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +230 -0
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +1970 -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 +36 -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 +650 -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 +221 -0
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +37 -0
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +133 -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 +788 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +53 -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 +223 -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 +597 -0
- data/bridge/sdk-core/tests/load_tests.rs +191 -0
- data/bridge/sdk-core/tests/main.rs +113 -0
- data/bridge/sdk-core/tests/runner.rs +93 -0
- data/bridge/src/connection.rs +186 -0
- data/bridge/src/lib.rs +239 -0
- data/bridge/src/runtime.rs +54 -0
- data/bridge/src/worker.rs +124 -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 +50 -0
- data/lib/gen/temporal/api/command/v1/message_pb.rb +174 -0
- data/lib/gen/temporal/api/common/v1/message_pb.rb +69 -0
- data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +33 -0
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +39 -0
- data/lib/gen/temporal/api/enums/v1/common_pb.rb +42 -0
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +68 -0
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +77 -0
- data/lib/gen/temporal/api/enums/v1/interaction_type_pb.rb +25 -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 +23 -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 +490 -0
- data/lib/gen/temporal/api/interaction/v1/message_pb.rb +49 -0
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +63 -0
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +85 -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 +149 -0
- data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +73 -0
- data/lib/gen/temporal/api/version/v1/message_pb.rb +41 -0
- data/lib/gen/temporal/api/workflow/v1/message_pb.rb +111 -0
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +788 -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 +165 -0
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +196 -0
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +34 -0
- data/lib/temporalio/activity/context.rb +97 -0
- data/lib/temporalio/activity/info.rb +67 -0
- data/lib/temporalio/activity.rb +85 -0
- data/lib/temporalio/bridge/error.rb +8 -0
- data/lib/temporalio/bridge.rb +14 -0
- data/lib/temporalio/client/implementation.rb +340 -0
- data/lib/temporalio/client/workflow_handle.rb +243 -0
- data/lib/temporalio/client.rb +131 -0
- data/lib/temporalio/connection.rb +751 -0
- data/lib/temporalio/data_converter.rb +191 -0
- data/lib/temporalio/error/failure.rb +194 -0
- data/lib/temporalio/error/workflow_failure.rb +19 -0
- data/lib/temporalio/errors.rb +40 -0
- data/lib/temporalio/failure_converter/base.rb +26 -0
- data/lib/temporalio/failure_converter/basic.rb +319 -0
- data/lib/temporalio/failure_converter.rb +7 -0
- data/lib/temporalio/interceptor/chain.rb +28 -0
- data/lib/temporalio/interceptor/client.rb +123 -0
- data/lib/temporalio/payload_codec/base.rb +32 -0
- data/lib/temporalio/payload_converter/base.rb +24 -0
- data/lib/temporalio/payload_converter/bytes.rb +27 -0
- data/lib/temporalio/payload_converter/composite.rb +49 -0
- data/lib/temporalio/payload_converter/encoding_base.rb +35 -0
- data/lib/temporalio/payload_converter/json.rb +26 -0
- data/lib/temporalio/payload_converter/nil.rb +26 -0
- data/lib/temporalio/payload_converter.rb +14 -0
- data/lib/temporalio/retry_policy.rb +82 -0
- data/lib/temporalio/retry_state.rb +35 -0
- data/lib/temporalio/runtime.rb +25 -0
- data/lib/temporalio/timeout_type.rb +29 -0
- data/lib/temporalio/version.rb +3 -0
- data/lib/temporalio/worker/activity_runner.rb +92 -0
- data/lib/temporalio/worker/activity_worker.rb +138 -0
- data/lib/temporalio/worker/reactor.rb +46 -0
- data/lib/temporalio/worker/runner.rb +63 -0
- data/lib/temporalio/worker/sync_worker.rb +88 -0
- data/lib/temporalio/worker/thread_pool_executor.rb +51 -0
- data/lib/temporalio/worker.rb +198 -0
- data/lib/temporalio/workflow/execution_info.rb +54 -0
- data/lib/temporalio/workflow/execution_status.rb +36 -0
- data/lib/temporalio/workflow/id_reuse_policy.rb +36 -0
- data/lib/temporalio/workflow/query_reject_condition.rb +33 -0
- data/lib/temporalio.rb +12 -1
- data/lib/thermite_patch.rb +23 -0
- data/temporalio.gemspec +45 -0
- metadata +566 -9
- data/lib/temporal/version.rb +0 -3
- data/lib/temporal.rb +0 -4
- data/temporal.gemspec +0 -20
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
|
2
|
+
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
|
3
|
+
github.com/temporalio/gogo-protobuf v1.22.1 h1:K5ja5MqmCQKo4tlX7u3g+ZJqbvRr0589ss2cZQx2dSM=
|
|
4
|
+
github.com/temporalio/gogo-protobuf v1.22.1/go.mod h1:tCaEv+fB8tsyLgoaqKr78K/JOhdRe684yyo0z30SHyA=
|
|
5
|
+
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// The MIT License
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// Copyright (c) 2020 Uber Technologies, Inc.
|
|
6
|
+
//
|
|
7
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
// in the Software without restriction, including without limitation the rights
|
|
10
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
// furnished to do so, subject to the following conditions:
|
|
13
|
+
//
|
|
14
|
+
// The above copyright notice and this permission notice shall be included in
|
|
15
|
+
// all copies or substantial portions of the Software.
|
|
16
|
+
//
|
|
17
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
+
// THE SOFTWARE.
|
|
24
|
+
|
|
25
|
+
package build
|
|
26
|
+
|
|
27
|
+
import (
|
|
28
|
+
_ "github.com/temporalio/gogo-protobuf/gogoproto" // gogoproto is just a random package name for module.
|
|
29
|
+
)
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// Protocol Buffers for Go with Gadgets
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2013, The GoGo Authors. All rights reserved.
|
|
4
|
+
// http://github.com/temporalio/gogo-protobuf
|
|
5
|
+
//
|
|
6
|
+
// Redistribution and use in source and binary forms, with or without
|
|
7
|
+
// modification, are permitted provided that the following conditions are
|
|
8
|
+
// met:
|
|
9
|
+
//
|
|
10
|
+
// * Redistributions of source code must retain the above copyright
|
|
11
|
+
// notice, this list of conditions and the following disclaimer.
|
|
12
|
+
// * Redistributions in binary form must reproduce the above
|
|
13
|
+
// copyright notice, this list of conditions and the following disclaimer
|
|
14
|
+
// in the documentation and/or other materials provided with the
|
|
15
|
+
// distribution.
|
|
16
|
+
//
|
|
17
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
18
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
19
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
20
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
21
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
22
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
23
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
24
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
25
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
26
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
27
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
|
|
29
|
+
syntax = "proto2";
|
|
30
|
+
package gogoproto;
|
|
31
|
+
|
|
32
|
+
import "google/protobuf/descriptor.proto";
|
|
33
|
+
|
|
34
|
+
option go_package = "github.com/gogo/protobuf/gogoproto";
|
|
35
|
+
|
|
36
|
+
extend google.protobuf.EnumOptions {
|
|
37
|
+
optional bool goproto_enum_prefix = 62001;
|
|
38
|
+
optional bool goproto_enum_stringer = 62021;
|
|
39
|
+
optional bool enum_stringer = 62022;
|
|
40
|
+
optional string enum_customname = 62023;
|
|
41
|
+
optional bool enumdecl = 62024;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
extend google.protobuf.EnumValueOptions {
|
|
45
|
+
optional string enumvalue_customname = 66001;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
extend google.protobuf.FileOptions {
|
|
49
|
+
optional bool goproto_getters_all = 63001;
|
|
50
|
+
optional bool goproto_enum_prefix_all = 63002;
|
|
51
|
+
optional bool goproto_stringer_all = 63003;
|
|
52
|
+
optional bool verbose_equal_all = 63004;
|
|
53
|
+
optional bool face_all = 63005;
|
|
54
|
+
optional bool gostring_all = 63006;
|
|
55
|
+
optional bool populate_all = 63007;
|
|
56
|
+
optional bool stringer_all = 63008;
|
|
57
|
+
optional bool onlyone_all = 63009;
|
|
58
|
+
|
|
59
|
+
optional bool equal_all = 63013;
|
|
60
|
+
optional bool description_all = 63014;
|
|
61
|
+
optional bool testgen_all = 63015;
|
|
62
|
+
optional bool benchgen_all = 63016;
|
|
63
|
+
optional bool marshaler_all = 63017;
|
|
64
|
+
optional bool unmarshaler_all = 63018;
|
|
65
|
+
optional bool stable_marshaler_all = 63019;
|
|
66
|
+
|
|
67
|
+
optional bool sizer_all = 63020;
|
|
68
|
+
|
|
69
|
+
optional bool goproto_enum_stringer_all = 63021;
|
|
70
|
+
optional bool enum_stringer_all = 63022;
|
|
71
|
+
|
|
72
|
+
optional bool unsafe_marshaler_all = 63023;
|
|
73
|
+
optional bool unsafe_unmarshaler_all = 63024;
|
|
74
|
+
|
|
75
|
+
optional bool goproto_extensions_map_all = 63025;
|
|
76
|
+
optional bool goproto_unrecognized_all = 63026;
|
|
77
|
+
optional bool gogoproto_import = 63027;
|
|
78
|
+
optional bool protosizer_all = 63028;
|
|
79
|
+
optional bool compare_all = 63029;
|
|
80
|
+
optional bool typedecl_all = 63030;
|
|
81
|
+
optional bool enumdecl_all = 63031;
|
|
82
|
+
|
|
83
|
+
optional bool goproto_registration = 63032;
|
|
84
|
+
optional bool messagename_all = 63033;
|
|
85
|
+
|
|
86
|
+
optional bool goproto_sizecache_all = 63034;
|
|
87
|
+
optional bool goproto_unkeyed_all = 63035;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
extend google.protobuf.MessageOptions {
|
|
91
|
+
optional bool goproto_getters = 64001;
|
|
92
|
+
optional bool goproto_stringer = 64003;
|
|
93
|
+
optional bool verbose_equal = 64004;
|
|
94
|
+
optional bool face = 64005;
|
|
95
|
+
optional bool gostring = 64006;
|
|
96
|
+
optional bool populate = 64007;
|
|
97
|
+
optional bool stringer = 67008;
|
|
98
|
+
optional bool onlyone = 64009;
|
|
99
|
+
|
|
100
|
+
optional bool equal = 64013;
|
|
101
|
+
optional bool description = 64014;
|
|
102
|
+
optional bool testgen = 64015;
|
|
103
|
+
optional bool benchgen = 64016;
|
|
104
|
+
optional bool marshaler = 64017;
|
|
105
|
+
optional bool unmarshaler = 64018;
|
|
106
|
+
optional bool stable_marshaler = 64019;
|
|
107
|
+
|
|
108
|
+
optional bool sizer = 64020;
|
|
109
|
+
|
|
110
|
+
optional bool unsafe_marshaler = 64023;
|
|
111
|
+
optional bool unsafe_unmarshaler = 64024;
|
|
112
|
+
|
|
113
|
+
optional bool goproto_extensions_map = 64025;
|
|
114
|
+
optional bool goproto_unrecognized = 64026;
|
|
115
|
+
|
|
116
|
+
optional bool protosizer = 64028;
|
|
117
|
+
optional bool compare = 64029;
|
|
118
|
+
|
|
119
|
+
optional bool typedecl = 64030;
|
|
120
|
+
|
|
121
|
+
optional bool messagename = 64033;
|
|
122
|
+
|
|
123
|
+
optional bool goproto_sizecache = 64034;
|
|
124
|
+
optional bool goproto_unkeyed = 64035;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
extend google.protobuf.FieldOptions {
|
|
128
|
+
optional bool nullable = 65001;
|
|
129
|
+
optional bool embed = 65002;
|
|
130
|
+
optional string customtype = 65003;
|
|
131
|
+
optional string customname = 65004;
|
|
132
|
+
optional string jsontag = 65005;
|
|
133
|
+
optional string moretags = 65006;
|
|
134
|
+
optional string casttype = 65007;
|
|
135
|
+
optional string castkey = 65008;
|
|
136
|
+
optional string castvalue = 65009;
|
|
137
|
+
|
|
138
|
+
optional bool stdtime = 65010;
|
|
139
|
+
optional bool stdduration = 65011;
|
|
140
|
+
optional bool wktpointer = 65012;
|
|
141
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
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.batch.v1;
|
|
26
|
+
|
|
27
|
+
option go_package = "go.temporal.io/api/batch/v1;batch";
|
|
28
|
+
option java_package = "io.temporal.api.batch.v1";
|
|
29
|
+
option java_multiple_files = true;
|
|
30
|
+
option java_outer_classname = "MessageProto";
|
|
31
|
+
option ruby_package = "Temporalio::Api::Batch::V1";
|
|
32
|
+
option csharp_namespace = "Temporalio.Api.Batch.V1";
|
|
33
|
+
|
|
34
|
+
import "dependencies/gogoproto/gogo.proto";
|
|
35
|
+
import "google/protobuf/timestamp.proto";
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
import "temporal/api/common/v1/message.proto";
|
|
39
|
+
import "temporal/api/enums/v1/batch_operation.proto";
|
|
40
|
+
|
|
41
|
+
message BatchOperationInfo {
|
|
42
|
+
// Batch job ID
|
|
43
|
+
string job_id = 1;
|
|
44
|
+
// Batch operation state
|
|
45
|
+
temporal.api.enums.v1.BatchOperationState state = 2;
|
|
46
|
+
// Batch operation start time
|
|
47
|
+
google.protobuf.Timestamp start_time = 3 [(gogoproto.stdtime) = true];
|
|
48
|
+
// Batch operation close time
|
|
49
|
+
google.protobuf.Timestamp close_time = 4 [(gogoproto.stdtime) = true];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// BatchOperationTermination sends terminate requests to batch workflows.
|
|
53
|
+
// Keep the parameter in sync with temporal.api.workflowservice.v1.TerminateWorkflowExecutionRequest.
|
|
54
|
+
// Ignore first_execution_run_id because this is used for single workflow operation.
|
|
55
|
+
message BatchOperationTermination {
|
|
56
|
+
// Serialized value(s) to provide to the termination event
|
|
57
|
+
temporal.api.common.v1.Payloads details = 1;
|
|
58
|
+
// The identity of the worker/client
|
|
59
|
+
string identity = 2;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// BatchOperationSignal sends signals to batch workflows.
|
|
63
|
+
// Keep the parameter in sync with temporal.api.workflowservice.v1.SignalWorkflowExecutionRequest.
|
|
64
|
+
message BatchOperationSignal {
|
|
65
|
+
// The workflow author-defined name of the signal to send to the workflow
|
|
66
|
+
string signal = 1;
|
|
67
|
+
// Serialized value(s) to provide with the signal
|
|
68
|
+
temporal.api.common.v1.Payloads input = 2;
|
|
69
|
+
// Headers that are passed with the signal to the processing workflow.
|
|
70
|
+
// These can include things like auth or tracing tokens.
|
|
71
|
+
temporal.api.common.v1.Header header = 3;
|
|
72
|
+
// The identity of the worker/client
|
|
73
|
+
string identity = 4;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// BatchOperationCancellation sends cancel requests to batch workflows.
|
|
77
|
+
// Keep the parameter in sync with temporal.api.workflowservice.v1.RequestCancelWorkflowExecutionRequest.
|
|
78
|
+
// Ignore first_execution_run_id because this is used for single workflow operation.
|
|
79
|
+
message BatchOperationCancellation {
|
|
80
|
+
// The identity of the worker/client
|
|
81
|
+
string identity = 1;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// BatchOperationDeletion sends deletion requests to batch workflows.
|
|
85
|
+
// Keep the parameter in sync with temporal.api.workflowservice.v1.DeleteWorkflowExecutionRequest.
|
|
86
|
+
message BatchOperationDeletion {
|
|
87
|
+
// The identity of the worker/client
|
|
88
|
+
string identity = 1;
|
|
89
|
+
}
|
|
@@ -0,0 +1,260 @@
|
|
|
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.command.v1;
|
|
26
|
+
|
|
27
|
+
option go_package = "go.temporal.io/api/command/v1;command";
|
|
28
|
+
option java_package = "io.temporal.api.command.v1";
|
|
29
|
+
option java_multiple_files = true;
|
|
30
|
+
option java_outer_classname = "MessageProto";
|
|
31
|
+
option ruby_package = "Temporalio::Api::Command::V1";
|
|
32
|
+
option csharp_namespace = "Temporalio.Api.Command.V1";
|
|
33
|
+
|
|
34
|
+
import "google/protobuf/duration.proto";
|
|
35
|
+
|
|
36
|
+
import "dependencies/gogoproto/gogo.proto";
|
|
37
|
+
|
|
38
|
+
import "temporal/api/enums/v1/workflow.proto";
|
|
39
|
+
import "temporal/api/enums/v1/command_type.proto";
|
|
40
|
+
import "temporal/api/common/v1/message.proto";
|
|
41
|
+
import "temporal/api/failure/v1/message.proto";
|
|
42
|
+
import "temporal/api/interaction/v1/message.proto";
|
|
43
|
+
import "temporal/api/taskqueue/v1/message.proto";
|
|
44
|
+
|
|
45
|
+
message ScheduleActivityTaskCommandAttributes {
|
|
46
|
+
string activity_id = 1;
|
|
47
|
+
temporal.api.common.v1.ActivityType activity_type = 2;
|
|
48
|
+
// This used to be a `namespace` field which allowed to schedule activity in another namespace.
|
|
49
|
+
reserved 3;
|
|
50
|
+
temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
|
|
51
|
+
temporal.api.common.v1.Header header = 5;
|
|
52
|
+
temporal.api.common.v1.Payloads input = 6;
|
|
53
|
+
// Indicates how long the caller is willing to wait for activity completion. The "schedule" time
|
|
54
|
+
// is when the activity is initially scheduled, not when the most recent retry is scheduled.
|
|
55
|
+
// Limits how long retries will be attempted. Either this or `start_to_close_timeout` must be
|
|
56
|
+
// specified. When not specified, defaults to the workflow execution timeout.
|
|
57
|
+
//
|
|
58
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
59
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
60
|
+
google.protobuf.Duration schedule_to_close_timeout = 7 [(gogoproto.stdduration) = true];
|
|
61
|
+
// Limits the time an activity task can stay in a task queue before a worker picks it up. The
|
|
62
|
+
// "schedule" time is when the most recent retry is scheduled. This timeout should usually not
|
|
63
|
+
// be set: it's useful in specific scenarios like worker-specific task queues. This timeout is
|
|
64
|
+
// always non retryable, as all a retry would achieve is to put it back into the same queue.
|
|
65
|
+
// Defaults to `schedule_to_close_timeout` or workflow execution timeout if that is not
|
|
66
|
+
// specified. More info:
|
|
67
|
+
// https://docs.temporal.io/docs/content/what-is-a-schedule-to-start-timeout/
|
|
68
|
+
//
|
|
69
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
70
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
71
|
+
google.protobuf.Duration schedule_to_start_timeout = 8 [(gogoproto.stdduration) = true];
|
|
72
|
+
// Maximum time an activity is allowed to execute after being picked up by a worker. This
|
|
73
|
+
// timeout is always retryable. Either this or `schedule_to_close_timeout` must be specified.
|
|
74
|
+
//
|
|
75
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
76
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
77
|
+
google.protobuf.Duration start_to_close_timeout = 9 [(gogoproto.stdduration) = true];
|
|
78
|
+
// Maximum permitted time between successful worker heartbeats.
|
|
79
|
+
google.protobuf.Duration heartbeat_timeout = 10 [(gogoproto.stdduration) = true];
|
|
80
|
+
// Activities are provided by a default retry policy which is controlled through the service's
|
|
81
|
+
// dynamic configuration. Retries will be attempted until `schedule_to_close_timeout` has
|
|
82
|
+
// elapsed. To disable retries set retry_policy.maximum_attempts to 1.
|
|
83
|
+
temporal.api.common.v1.RetryPolicy retry_policy = 11;
|
|
84
|
+
// Request to start the activity directly bypassing matching service and worker polling
|
|
85
|
+
// The slot for executing the activity should be reserved when setting this field to true.
|
|
86
|
+
bool request_eager_execution = 12;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
message RequestCancelActivityTaskCommandAttributes {
|
|
90
|
+
// The `ACTIVITY_TASK_SCHEDULED` event id for the activity being cancelled.
|
|
91
|
+
int64 scheduled_event_id = 1;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
message StartTimerCommandAttributes {
|
|
95
|
+
// An id for the timer, currently live timers must have different ids. Typically autogenerated
|
|
96
|
+
// by the SDK.
|
|
97
|
+
string timer_id = 1;
|
|
98
|
+
// How long until the timer fires, producing a `TIMER_FIRED` event.
|
|
99
|
+
//
|
|
100
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
101
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
102
|
+
google.protobuf.Duration start_to_fire_timeout = 2 [(gogoproto.stdduration) = true];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
message CompleteWorkflowExecutionCommandAttributes {
|
|
106
|
+
temporal.api.common.v1.Payloads result = 1;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
message FailWorkflowExecutionCommandAttributes {
|
|
110
|
+
temporal.api.failure.v1.Failure failure = 1;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
message CancelTimerCommandAttributes {
|
|
114
|
+
// The same timer id from the start timer command
|
|
115
|
+
string timer_id = 1;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
message CancelWorkflowExecutionCommandAttributes {
|
|
119
|
+
temporal.api.common.v1.Payloads details = 1;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
message RequestCancelExternalWorkflowExecutionCommandAttributes {
|
|
123
|
+
string namespace = 1;
|
|
124
|
+
string workflow_id = 2;
|
|
125
|
+
string run_id = 3;
|
|
126
|
+
// Deprecated.
|
|
127
|
+
string control = 4;
|
|
128
|
+
// Set this to true if the workflow being cancelled is a child of the workflow originating this
|
|
129
|
+
// command. The request will be rejected if it is set to true and the target workflow is *not*
|
|
130
|
+
// a child of the requesting workflow.
|
|
131
|
+
bool child_workflow_only = 5;
|
|
132
|
+
// Reason for requesting the cancellation
|
|
133
|
+
string reason = 6;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
message SignalExternalWorkflowExecutionCommandAttributes {
|
|
137
|
+
string namespace = 1;
|
|
138
|
+
temporal.api.common.v1.WorkflowExecution execution = 2;
|
|
139
|
+
// The workflow author-defined name of the signal to send to the workflow.
|
|
140
|
+
string signal_name = 3;
|
|
141
|
+
// Serialized value(s) to provide with the signal.
|
|
142
|
+
temporal.api.common.v1.Payloads input = 4;
|
|
143
|
+
// Deprecated
|
|
144
|
+
string control = 5;
|
|
145
|
+
// Set this to true if the workflow being cancelled is a child of the workflow originating this
|
|
146
|
+
// command. The request will be rejected if it is set to true and the target workflow is *not*
|
|
147
|
+
// a child of the requesting workflow.
|
|
148
|
+
bool child_workflow_only = 6;
|
|
149
|
+
// Headers that are passed by the workflow that is sending a signal to the external
|
|
150
|
+
// workflow that is receiving this signal.
|
|
151
|
+
temporal.api.common.v1.Header header = 7;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
message UpsertWorkflowSearchAttributesCommandAttributes {
|
|
155
|
+
temporal.api.common.v1.SearchAttributes search_attributes = 1;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
message ModifyWorkflowPropertiesCommandAttributes {
|
|
159
|
+
// If set, update the workflow memo with the provided values. The values will be merged with
|
|
160
|
+
// the existing memo. If the user wants to delete values, a default/empty Payload should be
|
|
161
|
+
// used as the value for the key being deleted.
|
|
162
|
+
temporal.api.common.v1.Memo upserted_memo = 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
message RecordMarkerCommandAttributes {
|
|
166
|
+
string marker_name = 1;
|
|
167
|
+
map<string, temporal.api.common.v1.Payloads> details = 2;
|
|
168
|
+
temporal.api.common.v1.Header header = 3;
|
|
169
|
+
temporal.api.failure.v1.Failure failure = 4;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
message ContinueAsNewWorkflowExecutionCommandAttributes {
|
|
173
|
+
temporal.api.common.v1.WorkflowType workflow_type = 1;
|
|
174
|
+
temporal.api.taskqueue.v1.TaskQueue task_queue = 2;
|
|
175
|
+
temporal.api.common.v1.Payloads input = 3;
|
|
176
|
+
|
|
177
|
+
// Timeout of a single workflow run.
|
|
178
|
+
google.protobuf.Duration workflow_run_timeout = 4 [(gogoproto.stdduration) = true];
|
|
179
|
+
// Timeout of a single workflow task.
|
|
180
|
+
google.protobuf.Duration workflow_task_timeout = 5 [(gogoproto.stdduration) = true];
|
|
181
|
+
// How long the workflow start will be delayed - not really a "backoff" in the traditional sense.
|
|
182
|
+
google.protobuf.Duration backoff_start_interval = 6 [(gogoproto.stdduration) = true];
|
|
183
|
+
temporal.api.common.v1.RetryPolicy retry_policy = 7;
|
|
184
|
+
// Should be removed
|
|
185
|
+
temporal.api.enums.v1.ContinueAsNewInitiator initiator = 8;
|
|
186
|
+
// Should be removed
|
|
187
|
+
temporal.api.failure.v1.Failure failure = 9;
|
|
188
|
+
// Should be removed
|
|
189
|
+
temporal.api.common.v1.Payloads last_completion_result = 10;
|
|
190
|
+
// Should be removed. Not necessarily unused but unclear and not exposed by SDKs.
|
|
191
|
+
string cron_schedule = 11;
|
|
192
|
+
temporal.api.common.v1.Header header = 12;
|
|
193
|
+
temporal.api.common.v1.Memo memo = 13;
|
|
194
|
+
temporal.api.common.v1.SearchAttributes search_attributes = 14;
|
|
195
|
+
|
|
196
|
+
// `workflow_execution_timeout` is omitted as it shouldn't be overridden from within a workflow.
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
message StartChildWorkflowExecutionCommandAttributes {
|
|
200
|
+
string namespace = 1;
|
|
201
|
+
string workflow_id = 2;
|
|
202
|
+
temporal.api.common.v1.WorkflowType workflow_type = 3;
|
|
203
|
+
temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
|
|
204
|
+
temporal.api.common.v1.Payloads input = 5;
|
|
205
|
+
// Total workflow execution timeout including retries and continue as new.
|
|
206
|
+
google.protobuf.Duration workflow_execution_timeout = 6 [(gogoproto.stdduration) = true];
|
|
207
|
+
// Timeout of a single workflow run.
|
|
208
|
+
google.protobuf.Duration workflow_run_timeout = 7 [(gogoproto.stdduration) = true];
|
|
209
|
+
// Timeout of a single workflow task.
|
|
210
|
+
google.protobuf.Duration workflow_task_timeout = 8 [(gogoproto.stdduration) = true];
|
|
211
|
+
// Default: PARENT_CLOSE_POLICY_TERMINATE.
|
|
212
|
+
temporal.api.enums.v1.ParentClosePolicy parent_close_policy = 9;
|
|
213
|
+
string control = 10;
|
|
214
|
+
// Default: WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE.
|
|
215
|
+
temporal.api.enums.v1.WorkflowIdReusePolicy workflow_id_reuse_policy = 11;
|
|
216
|
+
temporal.api.common.v1.RetryPolicy retry_policy = 12;
|
|
217
|
+
// Establish a cron schedule for the child workflow.
|
|
218
|
+
string cron_schedule = 13;
|
|
219
|
+
temporal.api.common.v1.Header header = 14;
|
|
220
|
+
temporal.api.common.v1.Memo memo = 15;
|
|
221
|
+
temporal.api.common.v1.SearchAttributes search_attributes = 16;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
message AcceptWorkflowUpdateCommandAttributes {
|
|
225
|
+
temporal.api.interaction.v1.Meta meta = 1;
|
|
226
|
+
temporal.api.interaction.v1.Input input = 2;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
message CompleteWorkflowUpdateCommandAttributes {
|
|
230
|
+
temporal.api.interaction.v1.Meta meta = 1;
|
|
231
|
+
temporal.api.interaction.v1.Output output = 2;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
message RejectWorkflowUpdateCommandAttributes {
|
|
235
|
+
temporal.api.interaction.v1.Meta meta = 1;
|
|
236
|
+
temporal.api.failure.v1.Failure failure = 2;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
message Command {
|
|
240
|
+
temporal.api.enums.v1.CommandType command_type = 1;
|
|
241
|
+
oneof attributes {
|
|
242
|
+
ScheduleActivityTaskCommandAttributes schedule_activity_task_command_attributes = 2;
|
|
243
|
+
StartTimerCommandAttributes start_timer_command_attributes = 3;
|
|
244
|
+
CompleteWorkflowExecutionCommandAttributes complete_workflow_execution_command_attributes = 4;
|
|
245
|
+
FailWorkflowExecutionCommandAttributes fail_workflow_execution_command_attributes = 5;
|
|
246
|
+
RequestCancelActivityTaskCommandAttributes request_cancel_activity_task_command_attributes = 6;
|
|
247
|
+
CancelTimerCommandAttributes cancel_timer_command_attributes = 7;
|
|
248
|
+
CancelWorkflowExecutionCommandAttributes cancel_workflow_execution_command_attributes = 8;
|
|
249
|
+
RequestCancelExternalWorkflowExecutionCommandAttributes request_cancel_external_workflow_execution_command_attributes = 9;
|
|
250
|
+
RecordMarkerCommandAttributes record_marker_command_attributes = 10;
|
|
251
|
+
ContinueAsNewWorkflowExecutionCommandAttributes continue_as_new_workflow_execution_command_attributes = 11;
|
|
252
|
+
StartChildWorkflowExecutionCommandAttributes start_child_workflow_execution_command_attributes = 12;
|
|
253
|
+
SignalExternalWorkflowExecutionCommandAttributes signal_external_workflow_execution_command_attributes = 13;
|
|
254
|
+
UpsertWorkflowSearchAttributesCommandAttributes upsert_workflow_search_attributes_command_attributes = 14;
|
|
255
|
+
AcceptWorkflowUpdateCommandAttributes accept_workflow_update_command_attributes = 15;
|
|
256
|
+
CompleteWorkflowUpdateCommandAttributes complete_workflow_update_command_attributes = 16;
|
|
257
|
+
ModifyWorkflowPropertiesCommandAttributes modify_workflow_properties_command_attributes = 17;
|
|
258
|
+
RejectWorkflowUpdateCommandAttributes reject_workflow_update_command_attributes = 18;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
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.common.v1;
|
|
26
|
+
|
|
27
|
+
option go_package = "go.temporal.io/api/common/v1;common";
|
|
28
|
+
option java_package = "io.temporal.api.common.v1";
|
|
29
|
+
option java_multiple_files = true;
|
|
30
|
+
option java_outer_classname = "MessageProto";
|
|
31
|
+
option ruby_package = "Temporalio::Api::Common::V1";
|
|
32
|
+
option csharp_namespace = "Temporalio.Api.Common.V1";
|
|
33
|
+
|
|
34
|
+
import "google/protobuf/duration.proto";
|
|
35
|
+
|
|
36
|
+
import "dependencies/gogoproto/gogo.proto";
|
|
37
|
+
|
|
38
|
+
import "temporal/api/enums/v1/common.proto";
|
|
39
|
+
|
|
40
|
+
message DataBlob {
|
|
41
|
+
temporal.api.enums.v1.EncodingType encoding_type = 1;
|
|
42
|
+
bytes data = 2;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// See `Payload`
|
|
46
|
+
message Payloads {
|
|
47
|
+
repeated Payload payloads = 1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Represents some binary (byte array) data (ex: activity input parameters or workflow result) with
|
|
51
|
+
// metadata which describes this binary data (format, encoding, encryption, etc). Serialization
|
|
52
|
+
// of the data may be user-defined.
|
|
53
|
+
message Payload {
|
|
54
|
+
map<string,bytes> metadata = 1;
|
|
55
|
+
bytes data = 2;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// A user-defined set of *indexed* fields that are used/exposed when listing/searching workflows.
|
|
59
|
+
// The payload is not serialized in a user-defined way.
|
|
60
|
+
message SearchAttributes {
|
|
61
|
+
map<string, Payload> indexed_fields = 1;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// A user-defined set of *unindexed* fields that are exposed when listing/searching workflows
|
|
65
|
+
message Memo {
|
|
66
|
+
map<string, Payload> fields = 1;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Contains metadata that can be attached to a variety of requests, like starting a workflow, and
|
|
70
|
+
// can be propagated between, for example, workflows and activities.
|
|
71
|
+
message Header {
|
|
72
|
+
map<string, Payload> fields = 1;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Identifies a specific workflow within a namespace. Practically speaking, because run_id is a
|
|
76
|
+
// uuid, a workflow execution is globally unique. Note that many commands allow specifying an empty
|
|
77
|
+
// run id as a way of saying "target the latest run of the workflow".
|
|
78
|
+
message WorkflowExecution {
|
|
79
|
+
string workflow_id = 1;
|
|
80
|
+
string run_id = 2;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Represents the identifier used by a workflow author to define the workflow. Typically, the
|
|
84
|
+
// name of a function. This is sometimes referred to as the workflow's "name"
|
|
85
|
+
message WorkflowType {
|
|
86
|
+
string name = 1;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Represents the identifier used by a activity author to define the activity. Typically, the
|
|
90
|
+
// name of a function. This is sometimes referred to as the activity's "name"
|
|
91
|
+
message ActivityType {
|
|
92
|
+
string name = 1;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// How retries ought to be handled, usable by both workflows and activities
|
|
96
|
+
message RetryPolicy {
|
|
97
|
+
// Interval of the first retry. If retryBackoffCoefficient is 1.0 then it is used for all retries.
|
|
98
|
+
google.protobuf.Duration initial_interval = 1 [(gogoproto.stdduration) = true];
|
|
99
|
+
// Coefficient used to calculate the next retry interval.
|
|
100
|
+
// The next retry interval is previous interval multiplied by the coefficient.
|
|
101
|
+
// Must be 1 or larger.
|
|
102
|
+
double backoff_coefficient = 2;
|
|
103
|
+
// Maximum interval between retries. Exponential backoff leads to interval increase.
|
|
104
|
+
// This value is the cap of the increase. Default is 100x of the initial interval.
|
|
105
|
+
google.protobuf.Duration maximum_interval = 3 [(gogoproto.stdduration) = true];
|
|
106
|
+
// Maximum number of attempts. When exceeded the retries stop even if not expired yet.
|
|
107
|
+
// 1 disables retries. 0 means unlimited (up to the timeouts)
|
|
108
|
+
int32 maximum_attempts = 4;
|
|
109
|
+
// Non-Retryable errors types. Will stop retrying if the error type matches this list. Note that
|
|
110
|
+
// this is not a substring match, the error *type* (not message) must match exactly.
|
|
111
|
+
repeated string non_retryable_error_types = 5;
|
|
112
|
+
}
|