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,379 @@
|
|
|
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
|
+
// (-- api-linter: core::0203::optional=disabled
|
|
24
|
+
// aip.dev/not-precedent: field_behavior annotation not available in our gogo fork --)
|
|
25
|
+
// (-- api-linter: core::0203::input-only=disabled
|
|
26
|
+
// aip.dev/not-precedent: field_behavior annotation not available in our gogo fork --)
|
|
27
|
+
|
|
28
|
+
syntax = "proto3";
|
|
29
|
+
|
|
30
|
+
package temporal.api.schedule.v1;
|
|
31
|
+
|
|
32
|
+
option go_package = "go.temporal.io/api/schedule/v1;schedule";
|
|
33
|
+
option java_package = "io.temporal.api.schedule.v1";
|
|
34
|
+
option java_multiple_files = true;
|
|
35
|
+
option java_outer_classname = "MessageProto";
|
|
36
|
+
option ruby_package = "Temporalio::Api::Schedule::V1";
|
|
37
|
+
option csharp_namespace = "Temporalio.Api.Schedule.V1";
|
|
38
|
+
|
|
39
|
+
import "google/protobuf/duration.proto";
|
|
40
|
+
import "google/protobuf/timestamp.proto";
|
|
41
|
+
|
|
42
|
+
import "dependencies/gogoproto/gogo.proto";
|
|
43
|
+
|
|
44
|
+
import "temporal/api/common/v1/message.proto";
|
|
45
|
+
import "temporal/api/enums/v1/schedule.proto";
|
|
46
|
+
import "temporal/api/workflow/v1/message.proto";
|
|
47
|
+
|
|
48
|
+
// CalendarSpec describes an event specification relative to the calendar,
|
|
49
|
+
// similar to a traditional cron specification, but with labeled fields. Each
|
|
50
|
+
// field can be one of:
|
|
51
|
+
// *: matches always
|
|
52
|
+
// x: matches when the field equals x
|
|
53
|
+
// x/y : matches when the field equals x+n*y where n is an integer
|
|
54
|
+
// x-z: matches when the field is between x and z inclusive
|
|
55
|
+
// w,x,y,...: matches when the field is one of the listed values
|
|
56
|
+
// Each x, y, z, ... is either a decimal integer, or a month or day of week name
|
|
57
|
+
// or abbreviation (in the appropriate fields).
|
|
58
|
+
// A timestamp matches if all fields match.
|
|
59
|
+
// Note that fields have different default values, for convenience.
|
|
60
|
+
// Note that the special case that some cron implementations have for treating
|
|
61
|
+
// day_of_month and day_of_week as "or" instead of "and" when both are set is
|
|
62
|
+
// not implemented.
|
|
63
|
+
// day_of_week can accept 0 or 7 as Sunday
|
|
64
|
+
// CalendarSpec gets compiled into StructuredCalendarSpec, which is what will be
|
|
65
|
+
// returned if you describe the schedule.
|
|
66
|
+
message CalendarSpec {
|
|
67
|
+
// Expression to match seconds. Default: 0
|
|
68
|
+
string second = 1;
|
|
69
|
+
// Expression to match minutes. Default: 0
|
|
70
|
+
string minute = 2;
|
|
71
|
+
// Expression to match hours. Default: 0
|
|
72
|
+
string hour = 3;
|
|
73
|
+
// Expression to match days of the month. Default: *
|
|
74
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
75
|
+
// aip.dev/not-precedent: standard name of field --)
|
|
76
|
+
string day_of_month = 4;
|
|
77
|
+
// Expression to match months. Default: *
|
|
78
|
+
string month = 5;
|
|
79
|
+
// Expression to match years. Default: *
|
|
80
|
+
string year = 6;
|
|
81
|
+
// Expression to match days of the week. Default: *
|
|
82
|
+
string day_of_week = 7;
|
|
83
|
+
// Free-form comment describing the intention of this spec.
|
|
84
|
+
string comment = 8;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Range represents a set of integer values, used to match fields of a calendar
|
|
88
|
+
// time in StructuredCalendarSpec. If end < start, then end is interpreted as
|
|
89
|
+
// equal to start. This means you can use a Range with start set to a value, and
|
|
90
|
+
// end and step unset (defaulting to 0) to represent a single value.
|
|
91
|
+
message Range {
|
|
92
|
+
// Start of range (inclusive).
|
|
93
|
+
int32 start = 1;
|
|
94
|
+
// End of range (inclusive).
|
|
95
|
+
int32 end = 2;
|
|
96
|
+
// Step (optional, default 1).
|
|
97
|
+
int32 step = 3;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// StructuredCalendarSpec describes an event specification relative to the
|
|
101
|
+
// calendar, in a form that's easy to work with programmatically. Each field can
|
|
102
|
+
// be one or more ranges.
|
|
103
|
+
// A timestamp matches if at least one range of each field matches the
|
|
104
|
+
// corresponding fields of the timestamp, except for year: if year is missing,
|
|
105
|
+
// that means all years match. For all fields besides year, at least one Range
|
|
106
|
+
// must be present to match anything.
|
|
107
|
+
// TODO: add relative-to-end-of-month
|
|
108
|
+
// TODO: add nth day-of-week in month
|
|
109
|
+
message StructuredCalendarSpec {
|
|
110
|
+
// Match seconds (0-59)
|
|
111
|
+
repeated Range second = 1;
|
|
112
|
+
// Match minutes (0-59)
|
|
113
|
+
repeated Range minute = 2;
|
|
114
|
+
// Match hours (0-23)
|
|
115
|
+
repeated Range hour = 3;
|
|
116
|
+
// Match days of the month (1-31)
|
|
117
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
118
|
+
// aip.dev/not-precedent: standard name of field --)
|
|
119
|
+
repeated Range day_of_month = 4;
|
|
120
|
+
// Match months (1-12)
|
|
121
|
+
repeated Range month = 5;
|
|
122
|
+
// Match years.
|
|
123
|
+
repeated Range year = 6;
|
|
124
|
+
// Match days of the week (0-6; 0 is Sunday).
|
|
125
|
+
repeated Range day_of_week = 7;
|
|
126
|
+
// Free-form comment describing the intention of this spec.
|
|
127
|
+
string comment = 8;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// IntervalSpec matches times that can be expressed as:
|
|
131
|
+
// epoch + n * interval + phase
|
|
132
|
+
// where n is an integer.
|
|
133
|
+
// phase defaults to zero if missing. interval is required.
|
|
134
|
+
// Both interval and phase must be non-negative and are truncated to the nearest
|
|
135
|
+
// second before any calculations.
|
|
136
|
+
// For example, an interval of 1 hour with phase of zero would match every hour,
|
|
137
|
+
// on the hour. The same interval but a phase of 19 minutes would match every
|
|
138
|
+
// xx:19:00. An interval of 28 days with phase zero would match
|
|
139
|
+
// 2022-02-17T00:00:00Z (among other times). The same interval with a phase of 3
|
|
140
|
+
// days, 5 hours, and 23 minutes would match 2022-02-20T05:23:00Z instead.
|
|
141
|
+
message IntervalSpec {
|
|
142
|
+
google.protobuf.Duration interval = 1 [(gogoproto.stdduration) = true];
|
|
143
|
+
google.protobuf.Duration phase = 2 [(gogoproto.stdduration) = true];
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// ScheduleSpec is a complete description of a set of absolute timestamps
|
|
147
|
+
// (possibly infinite) that an action should occur at. The meaning of a
|
|
148
|
+
// ScheduleSpec depends only on its contents and never changes, except that the
|
|
149
|
+
// definition of a time zone can change over time (most commonly, when daylight
|
|
150
|
+
// saving time policy changes for an area). To create a totally self-contained
|
|
151
|
+
// ScheduleSpec, use UTC or include timezone_data.
|
|
152
|
+
//
|
|
153
|
+
// For input, you can provide zero or more of: structured_calendar, calendar,
|
|
154
|
+
// cron_string, interval, and exclude_structured_calendar, and all of them will
|
|
155
|
+
// be used (the schedule will take action at the union of all of their times,
|
|
156
|
+
// minus the ones that match exclude_structured_calendar).
|
|
157
|
+
//
|
|
158
|
+
// On input, calendar and cron_string fields will be compiled into
|
|
159
|
+
// structured_calendar (and maybe interval and timezone_name), so if you
|
|
160
|
+
// Describe a schedule, you'll see only structured_calendar, interval, etc.
|
|
161
|
+
message ScheduleSpec {
|
|
162
|
+
// Calendar-based specifications of times.
|
|
163
|
+
repeated StructuredCalendarSpec structured_calendar = 7;
|
|
164
|
+
// cron_string holds a traditional cron specification as a string. It
|
|
165
|
+
// accepts 5, 6, or 7 fields, separated by spaces, and interprets them the
|
|
166
|
+
// same way as CalendarSpec.
|
|
167
|
+
// 5 fields: minute, hour, day_of_month, month, day_of_week
|
|
168
|
+
// 6 fields: minute, hour, day_of_month, month, day_of_week, year
|
|
169
|
+
// 7 fields: second, minute, hour, day_of_month, month, day_of_week, year
|
|
170
|
+
// If year is not given, it defaults to *. If second is not given, it
|
|
171
|
+
// defaults to 0.
|
|
172
|
+
// Shorthands @yearly, @monthly, @weekly, @daily, and @hourly are also
|
|
173
|
+
// accepted instead of the 5-7 time fields.
|
|
174
|
+
// Optionally, the string can be preceded by CRON_TZ=<timezone name> or
|
|
175
|
+
// TZ=<timezone name>, which will get copied to timezone_name. (There must
|
|
176
|
+
// not also be a timezone_name present.)
|
|
177
|
+
// Optionally "#" followed by a comment can appear at the end of the string.
|
|
178
|
+
// Note that the special case that some cron implementations have for
|
|
179
|
+
// treating day_of_month and day_of_week as "or" instead of "and" when both
|
|
180
|
+
// are set is not implemented.
|
|
181
|
+
// @every <interval>[/<phase>] is accepted and gets compiled into an
|
|
182
|
+
// IntervalSpec instead. <interval> and <phase> should be a decimal integer
|
|
183
|
+
// with a unit suffix s, m, h, or d.
|
|
184
|
+
repeated string cron_string = 8;
|
|
185
|
+
// Calendar-based specifications of times.
|
|
186
|
+
repeated CalendarSpec calendar = 1;
|
|
187
|
+
// Interval-based specifications of times.
|
|
188
|
+
repeated IntervalSpec interval = 2;
|
|
189
|
+
// Any timestamps matching any of exclude_* will be skipped.
|
|
190
|
+
repeated CalendarSpec exclude_calendar = 3 [deprecated = true]; // use exclude_structured_calendar
|
|
191
|
+
repeated StructuredCalendarSpec exclude_structured_calendar = 9;
|
|
192
|
+
// If start_time is set, any timestamps before start_time will be skipped.
|
|
193
|
+
// (Together, start_time and end_time make an inclusive interval.)
|
|
194
|
+
google.protobuf.Timestamp start_time = 4 [(gogoproto.stdtime) = true];
|
|
195
|
+
// If end_time is set, any timestamps after end_time will be skipped.
|
|
196
|
+
google.protobuf.Timestamp end_time = 5 [(gogoproto.stdtime) = true];
|
|
197
|
+
// All timestamps will be incremented by a random value from 0 to this
|
|
198
|
+
// amount of jitter. Default: 0
|
|
199
|
+
google.protobuf.Duration jitter = 6 [(gogoproto.stdduration) = true];
|
|
200
|
+
|
|
201
|
+
// Time zone to interpret all calendar-based specs in.
|
|
202
|
+
//
|
|
203
|
+
// If unset, defaults to UTC. We recommend using UTC for your application if
|
|
204
|
+
// at all possible, to avoid various surprising properties of time zones.
|
|
205
|
+
//
|
|
206
|
+
// Time zones may be provided by name, corresponding to names in the IANA
|
|
207
|
+
// time zone database (see https://www.iana.org/time-zones). The definition
|
|
208
|
+
// will be loaded by the Temporal server from the environment it runs in.
|
|
209
|
+
//
|
|
210
|
+
// If your application requires more control over the time zone definition
|
|
211
|
+
// used, it may pass in a complete definition in the form of a TZif file
|
|
212
|
+
// from the time zone database. If present, this will be used instead of
|
|
213
|
+
// loading anything from the environment. You are then responsible for
|
|
214
|
+
// updating timezone_data when the definition changes.
|
|
215
|
+
//
|
|
216
|
+
// Calendar spec matching is based on literal matching of the clock time
|
|
217
|
+
// with no special handling of DST: if you write a calendar spec that fires
|
|
218
|
+
// at 2:30am and specify a time zone that follows DST, that action will not
|
|
219
|
+
// be triggered on the day that has no 2:30am. Similarly, an action that
|
|
220
|
+
// fires at 1:30am will be triggered twice on the day that has two 1:30s.
|
|
221
|
+
//
|
|
222
|
+
// Also note that no actions are taken on leap-seconds (e.g. 23:59:60 UTC).
|
|
223
|
+
string timezone_name = 10;
|
|
224
|
+
bytes timezone_data = 11;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
message SchedulePolicies {
|
|
228
|
+
// Policy for overlaps.
|
|
229
|
+
// Note that this can be changed after a schedule has taken some actions,
|
|
230
|
+
// and some changes might produce unintuitive results. In general, the later
|
|
231
|
+
// policy overrides the earlier policy.
|
|
232
|
+
temporal.api.enums.v1.ScheduleOverlapPolicy overlap_policy = 1;
|
|
233
|
+
|
|
234
|
+
// Policy for catchups:
|
|
235
|
+
// If the Temporal server misses an action due to one or more components
|
|
236
|
+
// being down, and comes back up, the action will be run if the scheduled
|
|
237
|
+
// time is within this window from the current time.
|
|
238
|
+
// This value defaults to 60 seconds, and can't be less than 10 seconds.
|
|
239
|
+
google.protobuf.Duration catchup_window = 2 [(gogoproto.stdduration) = true];
|
|
240
|
+
|
|
241
|
+
// If true, and a workflow run fails or times out, turn on "paused".
|
|
242
|
+
// This applies after retry policies: the full chain of retries must fail to
|
|
243
|
+
// trigger a pause here.
|
|
244
|
+
bool pause_on_failure = 3;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
message ScheduleAction {
|
|
248
|
+
oneof action {
|
|
249
|
+
// All fields of NewWorkflowExecutionInfo are valid except for:
|
|
250
|
+
// - workflow_id_reuse_policy
|
|
251
|
+
// - cron_schedule
|
|
252
|
+
// The workflow id of the started workflow may not match this exactly,
|
|
253
|
+
// it may have a timestamp appended for uniqueness.
|
|
254
|
+
temporal.api.workflow.v1.NewWorkflowExecutionInfo start_workflow = 1;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
message ScheduleActionResult {
|
|
259
|
+
// Time that the action was taken (according to the schedule, including jitter).
|
|
260
|
+
google.protobuf.Timestamp schedule_time = 1 [(gogoproto.stdtime) = true];
|
|
261
|
+
|
|
262
|
+
// Time that the action was taken (real time).
|
|
263
|
+
google.protobuf.Timestamp actual_time = 2 [(gogoproto.stdtime) = true];
|
|
264
|
+
|
|
265
|
+
// If action was start_workflow:
|
|
266
|
+
temporal.api.common.v1.WorkflowExecution start_workflow_result = 11;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
message ScheduleState {
|
|
270
|
+
// Informative human-readable message with contextual notes, e.g. the reason
|
|
271
|
+
// a schedule is paused. The system may overwrite this message on certain
|
|
272
|
+
// conditions, e.g. when pause-on-failure happens.
|
|
273
|
+
string notes = 1;
|
|
274
|
+
|
|
275
|
+
// If true, do not take any actions based on the schedule spec.
|
|
276
|
+
bool paused = 2;
|
|
277
|
+
|
|
278
|
+
// If limited_actions is true, decrement remaining_actions after each
|
|
279
|
+
// action, and do not take any more scheduled actions if remaining_actions
|
|
280
|
+
// is zero. Actions may still be taken by explicit request (i.e. trigger
|
|
281
|
+
// immediately or backfill). Skipped actions (due to overlap policy) do not
|
|
282
|
+
// count against remaining actions.
|
|
283
|
+
bool limited_actions = 3;
|
|
284
|
+
int64 remaining_actions = 4;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
message TriggerImmediatelyRequest {
|
|
288
|
+
// Override overlap policy for this one request.
|
|
289
|
+
temporal.api.enums.v1.ScheduleOverlapPolicy overlap_policy = 1;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
message BackfillRequest {
|
|
293
|
+
// Time range to evaluate schedule in.
|
|
294
|
+
google.protobuf.Timestamp start_time = 1 [(gogoproto.stdtime) = true];
|
|
295
|
+
google.protobuf.Timestamp end_time = 2 [(gogoproto.stdtime) = true];
|
|
296
|
+
// Override overlap policy for this request.
|
|
297
|
+
temporal.api.enums.v1.ScheduleOverlapPolicy overlap_policy = 3;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
message SchedulePatch {
|
|
301
|
+
// If set, trigger one action immediately.
|
|
302
|
+
TriggerImmediatelyRequest trigger_immediately = 1;
|
|
303
|
+
|
|
304
|
+
// If set, runs though the specified time period(s) and takes actions as if that time
|
|
305
|
+
// passed by right now, all at once. The overlap policy can be overridden for the
|
|
306
|
+
// scope of the backfill.
|
|
307
|
+
repeated BackfillRequest backfill_request = 2;
|
|
308
|
+
|
|
309
|
+
// If set, change the state to paused or unpaused (respectively) and set the
|
|
310
|
+
// notes field to the value of the string.
|
|
311
|
+
string pause = 3;
|
|
312
|
+
string unpause = 4;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
message ScheduleInfo {
|
|
316
|
+
// Number of actions taken so far.
|
|
317
|
+
int64 action_count = 1;
|
|
318
|
+
|
|
319
|
+
// Number of times a scheduled action was skipped due to missing the catchup window.
|
|
320
|
+
int64 missed_catchup_window = 2;
|
|
321
|
+
|
|
322
|
+
// Number of skipped actions due to overlap.
|
|
323
|
+
int64 overlap_skipped = 3;
|
|
324
|
+
|
|
325
|
+
// Currently-running workflows started by this schedule. (There might be
|
|
326
|
+
// more than one if the overlap policy allows overlaps.)
|
|
327
|
+
// Note that the run_ids in here are the original execution run ids as
|
|
328
|
+
// started by the schedule. If the workflows retried, did continue-as-new,
|
|
329
|
+
// or were reset, they might still be running but with a different run_id.
|
|
330
|
+
repeated temporal.api.common.v1.WorkflowExecution running_workflows = 9;
|
|
331
|
+
|
|
332
|
+
// Most recent ten actual action times (including manual triggers).
|
|
333
|
+
repeated ScheduleActionResult recent_actions = 4;
|
|
334
|
+
|
|
335
|
+
// Next ten scheduled action times.
|
|
336
|
+
repeated google.protobuf.Timestamp future_action_times = 5 [(gogoproto.stdtime) = true];
|
|
337
|
+
|
|
338
|
+
// Timestamps of schedule creation and last update.
|
|
339
|
+
google.protobuf.Timestamp create_time = 6 [(gogoproto.stdtime) = true];
|
|
340
|
+
google.protobuf.Timestamp update_time = 7 [(gogoproto.stdtime) = true];
|
|
341
|
+
|
|
342
|
+
string invalid_schedule_error = 8 [deprecated = true];
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
message Schedule {
|
|
346
|
+
ScheduleSpec spec = 1;
|
|
347
|
+
ScheduleAction action = 2;
|
|
348
|
+
SchedulePolicies policies = 3;
|
|
349
|
+
ScheduleState state = 4;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
// ScheduleListInfo is an abbreviated set of values from Schedule and ScheduleInfo
|
|
353
|
+
// that's returned in ListSchedules.
|
|
354
|
+
message ScheduleListInfo {
|
|
355
|
+
// From spec:
|
|
356
|
+
// Some fields are dropped from this copy of spec: timezone_data
|
|
357
|
+
ScheduleSpec spec = 1;
|
|
358
|
+
|
|
359
|
+
// From action:
|
|
360
|
+
// Action is a oneof field, but we need to encode this in JSON and oneof fields don't work
|
|
361
|
+
// well with JSON. If action is start_workflow, this is set:
|
|
362
|
+
temporal.api.common.v1.WorkflowType workflow_type = 2;
|
|
363
|
+
|
|
364
|
+
// From state:
|
|
365
|
+
string notes = 3;
|
|
366
|
+
bool paused = 4;
|
|
367
|
+
|
|
368
|
+
// From info (maybe fewer entries):
|
|
369
|
+
repeated ScheduleActionResult recent_actions = 5;
|
|
370
|
+
repeated google.protobuf.Timestamp future_action_times = 6 [(gogoproto.stdtime) = true];
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
// ScheduleListEntry is returned by ListSchedules.
|
|
374
|
+
message ScheduleListEntry {
|
|
375
|
+
string schedule_id = 1;
|
|
376
|
+
temporal.api.common.v1.Memo memo = 2;
|
|
377
|
+
temporal.api.common.v1.SearchAttributes search_attributes = 3;
|
|
378
|
+
ScheduleListInfo info = 4;
|
|
379
|
+
}
|
|
@@ -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
|
+
package temporal.api.taskqueue.v1;
|
|
26
|
+
|
|
27
|
+
option go_package = "go.temporal.io/api/taskqueue/v1;taskqueue";
|
|
28
|
+
option java_package = "io.temporal.api.taskqueue.v1";
|
|
29
|
+
option java_multiple_files = true;
|
|
30
|
+
option java_outer_classname = "MessageProto";
|
|
31
|
+
option ruby_package = "Temporalio::Api::TaskQueue::V1";
|
|
32
|
+
option csharp_namespace = "Temporalio.Api.TaskQueue.V1";
|
|
33
|
+
|
|
34
|
+
import "google/protobuf/duration.proto";
|
|
35
|
+
import "google/protobuf/timestamp.proto";
|
|
36
|
+
import "google/protobuf/wrappers.proto";
|
|
37
|
+
|
|
38
|
+
import "dependencies/gogoproto/gogo.proto";
|
|
39
|
+
|
|
40
|
+
import "temporal/api/enums/v1/task_queue.proto";
|
|
41
|
+
|
|
42
|
+
// See https://docs.temporal.io/docs/concepts/task-queues/
|
|
43
|
+
message TaskQueue {
|
|
44
|
+
string name = 1;
|
|
45
|
+
// Default: TASK_QUEUE_KIND_NORMAL.
|
|
46
|
+
temporal.api.enums.v1.TaskQueueKind kind = 2;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Only applies to activity task queues
|
|
50
|
+
message TaskQueueMetadata {
|
|
51
|
+
// Allows throttling dispatch of tasks from this queue
|
|
52
|
+
google.protobuf.DoubleValue max_tasks_per_second = 1;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
message TaskQueueStatus {
|
|
56
|
+
int64 backlog_count_hint = 1;
|
|
57
|
+
int64 read_level = 2;
|
|
58
|
+
int64 ack_level = 3;
|
|
59
|
+
double rate_per_second = 4;
|
|
60
|
+
TaskIdBlock task_id_block = 5;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
message TaskIdBlock {
|
|
64
|
+
int64 start_id = 1;
|
|
65
|
+
int64 end_id = 2;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
message TaskQueuePartitionMetadata {
|
|
69
|
+
string key = 1;
|
|
70
|
+
string owner_host_name = 2;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
message PollerInfo {
|
|
74
|
+
// Unix Nano
|
|
75
|
+
google.protobuf.Timestamp last_access_time = 1 [(gogoproto.stdtime) = true];
|
|
76
|
+
string identity = 2;
|
|
77
|
+
double rate_per_second = 3;
|
|
78
|
+
// If a worker has specified an ID for use with the worker versioning feature while polling,
|
|
79
|
+
// that id must appear here.
|
|
80
|
+
VersionId worker_versioning_id = 4;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
message StickyExecutionAttributes {
|
|
84
|
+
TaskQueue worker_task_queue = 1;
|
|
85
|
+
// (-- api-linter: core::0140::prepositions=disabled
|
|
86
|
+
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
87
|
+
google.protobuf.Duration schedule_to_start_timeout = 2 [(gogoproto.stdduration) = true];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Used by the worker versioning APIs, represents a node in the version graph for a particular
|
|
91
|
+
// task queue
|
|
92
|
+
message VersionIdNode {
|
|
93
|
+
VersionId version = 1;
|
|
94
|
+
// A pointer to the previous version this version is considered to be compatible with
|
|
95
|
+
VersionIdNode previous_compatible = 2;
|
|
96
|
+
// A pointer to the last incompatible version (previous major version)
|
|
97
|
+
VersionIdNode previous_incompatible = 3;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Used by the worker versioning APIs, represents a specific version of something
|
|
101
|
+
// Currently, that's just a whole-worker id. In the future, if we support
|
|
102
|
+
// WASM workflow bundle based versioning, for example, then the inside of this
|
|
103
|
+
// message may become a oneof of different version types.
|
|
104
|
+
message VersionId {
|
|
105
|
+
// An opaque whole-worker identifier
|
|
106
|
+
string worker_build_id = 1;
|
|
107
|
+
}
|
|
108
|
+
|
|
@@ -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.version.v1;
|
|
26
|
+
|
|
27
|
+
option go_package = "go.temporal.io/api/version/v1;version";
|
|
28
|
+
option java_package = "io.temporal.api.version.v1";
|
|
29
|
+
option java_multiple_files = true;
|
|
30
|
+
option java_outer_classname = "MessageProto";
|
|
31
|
+
option ruby_package = "Temporalio::Api::Version::V1";
|
|
32
|
+
option csharp_namespace = "Temporalio.Api.Version.V1";
|
|
33
|
+
|
|
34
|
+
import "google/protobuf/timestamp.proto";
|
|
35
|
+
import "dependencies/gogoproto/gogo.proto";
|
|
36
|
+
import "temporal/api/enums/v1/common.proto";
|
|
37
|
+
|
|
38
|
+
// ReleaseInfo contains information about specific version of temporal.
|
|
39
|
+
message ReleaseInfo {
|
|
40
|
+
string version = 1;
|
|
41
|
+
google.protobuf.Timestamp release_time = 2 [(gogoproto.stdtime) = true];
|
|
42
|
+
string notes = 3;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Alert contains notification and severity.
|
|
46
|
+
message Alert {
|
|
47
|
+
string message = 1;
|
|
48
|
+
temporal.api.enums.v1.Severity severity = 2;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// VersionInfo contains details about current and recommended release versions as well as alerts and upgrade instructions.
|
|
52
|
+
message VersionInfo {
|
|
53
|
+
ReleaseInfo current = 1;
|
|
54
|
+
ReleaseInfo recommended = 2;
|
|
55
|
+
string instructions = 3;
|
|
56
|
+
repeated Alert alerts = 4;
|
|
57
|
+
google.protobuf.Timestamp last_update_time = 5 [(gogoproto.stdtime) = true];
|
|
58
|
+
}
|
|
59
|
+
|