temporalio 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (316) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +130 -0
  3. data/bridge/Cargo.lock +2865 -0
  4. data/bridge/Cargo.toml +26 -0
  5. data/bridge/sdk-core/ARCHITECTURE.md +76 -0
  6. data/bridge/sdk-core/Cargo.lock +2606 -0
  7. data/bridge/sdk-core/Cargo.toml +2 -0
  8. data/bridge/sdk-core/LICENSE.txt +23 -0
  9. data/bridge/sdk-core/README.md +107 -0
  10. data/bridge/sdk-core/arch_docs/diagrams/README.md +10 -0
  11. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +40 -0
  12. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +1 -0
  13. data/bridge/sdk-core/arch_docs/sticky_queues.md +51 -0
  14. data/bridge/sdk-core/bridge-ffi/Cargo.toml +24 -0
  15. data/bridge/sdk-core/bridge-ffi/LICENSE.txt +23 -0
  16. data/bridge/sdk-core/bridge-ffi/build.rs +25 -0
  17. data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +249 -0
  18. data/bridge/sdk-core/bridge-ffi/src/lib.rs +825 -0
  19. data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +211 -0
  20. data/bridge/sdk-core/client/Cargo.toml +40 -0
  21. data/bridge/sdk-core/client/LICENSE.txt +23 -0
  22. data/bridge/sdk-core/client/src/lib.rs +1294 -0
  23. data/bridge/sdk-core/client/src/metrics.rs +165 -0
  24. data/bridge/sdk-core/client/src/raw.rs +931 -0
  25. data/bridge/sdk-core/client/src/retry.rs +674 -0
  26. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +185 -0
  27. data/bridge/sdk-core/core/Cargo.toml +116 -0
  28. data/bridge/sdk-core/core/LICENSE.txt +23 -0
  29. data/bridge/sdk-core/core/benches/workflow_replay.rs +73 -0
  30. data/bridge/sdk-core/core/src/abstractions.rs +166 -0
  31. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +911 -0
  32. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +221 -0
  33. data/bridge/sdk-core/core/src/core_tests/determinism.rs +107 -0
  34. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +515 -0
  35. data/bridge/sdk-core/core/src/core_tests/mod.rs +100 -0
  36. data/bridge/sdk-core/core/src/core_tests/queries.rs +736 -0
  37. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +65 -0
  38. data/bridge/sdk-core/core/src/core_tests/workers.rs +259 -0
  39. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +124 -0
  40. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +2070 -0
  41. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +515 -0
  42. data/bridge/sdk-core/core/src/lib.rs +175 -0
  43. data/bridge/sdk-core/core/src/log_export.rs +62 -0
  44. data/bridge/sdk-core/core/src/pollers/mod.rs +54 -0
  45. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +297 -0
  46. data/bridge/sdk-core/core/src/protosext/mod.rs +428 -0
  47. data/bridge/sdk-core/core/src/replay/mod.rs +71 -0
  48. data/bridge/sdk-core/core/src/retry_logic.rs +202 -0
  49. data/bridge/sdk-core/core/src/telemetry/metrics.rs +383 -0
  50. data/bridge/sdk-core/core/src/telemetry/mod.rs +412 -0
  51. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +77 -0
  52. data/bridge/sdk-core/core/src/test_help/mod.rs +875 -0
  53. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +580 -0
  54. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +1042 -0
  55. data/bridge/sdk-core/core/src/worker/activities.rs +464 -0
  56. data/bridge/sdk-core/core/src/worker/client/mocks.rs +87 -0
  57. data/bridge/sdk-core/core/src/worker/client.rs +347 -0
  58. data/bridge/sdk-core/core/src/worker/mod.rs +566 -0
  59. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +37 -0
  60. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +110 -0
  61. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +458 -0
  62. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +911 -0
  63. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +298 -0
  64. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +171 -0
  65. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +860 -0
  66. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +140 -0
  67. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +161 -0
  68. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +133 -0
  69. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +1448 -0
  70. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +342 -0
  71. data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +127 -0
  72. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +712 -0
  73. data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +71 -0
  74. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +443 -0
  75. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +439 -0
  76. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +169 -0
  77. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +246 -0
  78. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +96 -0
  79. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +1184 -0
  80. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +277 -0
  81. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +198 -0
  82. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +647 -0
  83. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +1143 -0
  84. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +145 -0
  85. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +88 -0
  86. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +940 -0
  87. data/bridge/sdk-core/core-api/Cargo.toml +31 -0
  88. data/bridge/sdk-core/core-api/LICENSE.txt +23 -0
  89. data/bridge/sdk-core/core-api/src/errors.rs +95 -0
  90. data/bridge/sdk-core/core-api/src/lib.rs +151 -0
  91. data/bridge/sdk-core/core-api/src/worker.rs +135 -0
  92. data/bridge/sdk-core/etc/deps.svg +187 -0
  93. data/bridge/sdk-core/etc/dynamic-config.yaml +2 -0
  94. data/bridge/sdk-core/etc/otel-collector-config.yaml +36 -0
  95. data/bridge/sdk-core/etc/prometheus.yaml +6 -0
  96. data/bridge/sdk-core/fsm/Cargo.toml +18 -0
  97. data/bridge/sdk-core/fsm/LICENSE.txt +23 -0
  98. data/bridge/sdk-core/fsm/README.md +3 -0
  99. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +27 -0
  100. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +23 -0
  101. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +647 -0
  102. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +8 -0
  103. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +18 -0
  104. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +12 -0
  105. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +41 -0
  106. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +14 -0
  107. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +11 -0
  108. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +32 -0
  109. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +31 -0
  110. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +46 -0
  111. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +29 -0
  112. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +12 -0
  113. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +32 -0
  114. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +18 -0
  115. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +5 -0
  116. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +11 -0
  117. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +5 -0
  118. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +11 -0
  119. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +5 -0
  120. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +14 -0
  121. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +23 -0
  122. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +249 -0
  123. data/bridge/sdk-core/fsm/src/lib.rs +2 -0
  124. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  125. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  126. data/bridge/sdk-core/integ-with-otel.sh +7 -0
  127. data/bridge/sdk-core/protos/api_upstream/README.md +9 -0
  128. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +40 -0
  129. data/bridge/sdk-core/protos/api_upstream/buf.yaml +12 -0
  130. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +141 -0
  131. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +86 -0
  132. data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +83 -0
  133. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +259 -0
  134. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +112 -0
  135. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +46 -0
  136. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/cluster.proto +40 -0
  137. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +57 -0
  138. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +55 -0
  139. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +168 -0
  140. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +97 -0
  141. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +51 -0
  142. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +50 -0
  143. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +41 -0
  144. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +60 -0
  145. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +59 -0
  146. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +51 -0
  147. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +122 -0
  148. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +108 -0
  149. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +114 -0
  150. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +56 -0
  151. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +751 -0
  152. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +97 -0
  153. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +161 -0
  154. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +99 -0
  155. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +61 -0
  156. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +55 -0
  157. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +300 -0
  158. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +108 -0
  159. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +46 -0
  160. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +59 -0
  161. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +145 -0
  162. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +1124 -0
  163. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +401 -0
  164. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +63 -0
  165. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +78 -0
  166. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +79 -0
  167. data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +210 -0
  168. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +77 -0
  169. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +15 -0
  170. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +30 -0
  171. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +30 -0
  172. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +261 -0
  173. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +297 -0
  174. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +29 -0
  175. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +38 -0
  176. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +13 -0
  177. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +141 -0
  178. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +63 -0
  179. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +90 -0
  180. data/bridge/sdk-core/rustfmt.toml +1 -0
  181. data/bridge/sdk-core/sdk/Cargo.toml +47 -0
  182. data/bridge/sdk-core/sdk/LICENSE.txt +23 -0
  183. data/bridge/sdk-core/sdk/src/activity_context.rs +230 -0
  184. data/bridge/sdk-core/sdk/src/app_data.rs +37 -0
  185. data/bridge/sdk-core/sdk/src/conversions.rs +8 -0
  186. data/bridge/sdk-core/sdk/src/interceptors.rs +17 -0
  187. data/bridge/sdk-core/sdk/src/lib.rs +792 -0
  188. data/bridge/sdk-core/sdk/src/payload_converter.rs +11 -0
  189. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +295 -0
  190. data/bridge/sdk-core/sdk/src/workflow_context.rs +683 -0
  191. data/bridge/sdk-core/sdk/src/workflow_future.rs +503 -0
  192. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +30 -0
  193. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +23 -0
  194. data/bridge/sdk-core/sdk-core-protos/build.rs +108 -0
  195. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +7 -0
  196. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +497 -0
  197. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +230 -0
  198. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +1910 -0
  199. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +38 -0
  200. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +14 -0
  201. data/bridge/sdk-core/test-utils/Cargo.toml +35 -0
  202. data/bridge/sdk-core/test-utils/src/canned_histories.rs +1579 -0
  203. data/bridge/sdk-core/test-utils/src/histfetch.rs +28 -0
  204. data/bridge/sdk-core/test-utils/src/lib.rs +598 -0
  205. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +36 -0
  206. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +128 -0
  207. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +218 -0
  208. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +146 -0
  209. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +437 -0
  210. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +93 -0
  211. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +878 -0
  212. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +61 -0
  213. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +59 -0
  214. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +58 -0
  215. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +50 -0
  216. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +60 -0
  217. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +54 -0
  218. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +634 -0
  219. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +113 -0
  220. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +137 -0
  221. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +93 -0
  222. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +167 -0
  223. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +99 -0
  224. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +131 -0
  225. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +75 -0
  226. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +587 -0
  227. data/bridge/sdk-core/tests/load_tests.rs +191 -0
  228. data/bridge/sdk-core/tests/main.rs +111 -0
  229. data/bridge/sdk-core/tests/runner.rs +93 -0
  230. data/bridge/src/connection.rs +167 -0
  231. data/bridge/src/lib.rs +180 -0
  232. data/bridge/src/runtime.rs +47 -0
  233. data/bridge/src/worker.rs +73 -0
  234. data/ext/Rakefile +9 -0
  235. data/lib/bridge.so +0 -0
  236. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +14 -0
  237. data/lib/gen/temporal/api/batch/v1/message_pb.rb +48 -0
  238. data/lib/gen/temporal/api/cluster/v1/message_pb.rb +67 -0
  239. data/lib/gen/temporal/api/command/v1/message_pb.rb +166 -0
  240. data/lib/gen/temporal/api/common/v1/message_pb.rb +69 -0
  241. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +32 -0
  242. data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +26 -0
  243. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +37 -0
  244. data/lib/gen/temporal/api/enums/v1/common_pb.rb +41 -0
  245. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +67 -0
  246. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +71 -0
  247. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +37 -0
  248. data/lib/gen/temporal/api/enums/v1/query_pb.rb +31 -0
  249. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +24 -0
  250. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +28 -0
  251. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +30 -0
  252. data/lib/gen/temporal/api/enums/v1/update_pb.rb +28 -0
  253. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +89 -0
  254. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +84 -0
  255. data/lib/gen/temporal/api/failure/v1/message_pb.rb +83 -0
  256. data/lib/gen/temporal/api/filter/v1/message_pb.rb +40 -0
  257. data/lib/gen/temporal/api/history/v1/message_pb.rb +489 -0
  258. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +63 -0
  259. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +125 -0
  260. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +20 -0
  261. data/lib/gen/temporal/api/query/v1/message_pb.rb +38 -0
  262. data/lib/gen/temporal/api/replication/v1/message_pb.rb +37 -0
  263. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +128 -0
  264. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +73 -0
  265. data/lib/gen/temporal/api/update/v1/message_pb.rb +26 -0
  266. data/lib/gen/temporal/api/version/v1/message_pb.rb +41 -0
  267. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +110 -0
  268. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +771 -0
  269. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +20 -0
  270. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +58 -0
  271. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +57 -0
  272. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +222 -0
  273. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +57 -0
  274. data/lib/gen/temporal/sdk/core/common/common_pb.rb +22 -0
  275. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +34 -0
  276. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +27 -0
  277. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +164 -0
  278. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +192 -0
  279. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +34 -0
  280. data/lib/temporal/bridge.rb +14 -0
  281. data/lib/temporal/client/implementation.rb +339 -0
  282. data/lib/temporal/client/workflow_handle.rb +243 -0
  283. data/lib/temporal/client.rb +144 -0
  284. data/lib/temporal/connection.rb +736 -0
  285. data/lib/temporal/data_converter.rb +150 -0
  286. data/lib/temporal/error/failure.rb +194 -0
  287. data/lib/temporal/error/workflow_failure.rb +17 -0
  288. data/lib/temporal/errors.rb +22 -0
  289. data/lib/temporal/failure_converter/base.rb +26 -0
  290. data/lib/temporal/failure_converter/basic.rb +313 -0
  291. data/lib/temporal/failure_converter.rb +8 -0
  292. data/lib/temporal/interceptor/chain.rb +27 -0
  293. data/lib/temporal/interceptor/client.rb +102 -0
  294. data/lib/temporal/payload_codec/base.rb +32 -0
  295. data/lib/temporal/payload_converter/base.rb +24 -0
  296. data/lib/temporal/payload_converter/bytes.rb +26 -0
  297. data/lib/temporal/payload_converter/composite.rb +47 -0
  298. data/lib/temporal/payload_converter/encoding_base.rb +35 -0
  299. data/lib/temporal/payload_converter/json.rb +25 -0
  300. data/lib/temporal/payload_converter/nil.rb +25 -0
  301. data/lib/temporal/payload_converter.rb +14 -0
  302. data/lib/temporal/retry_policy.rb +82 -0
  303. data/lib/temporal/retry_state.rb +35 -0
  304. data/lib/temporal/runtime.rb +22 -0
  305. data/lib/temporal/timeout_type.rb +29 -0
  306. data/lib/temporal/version.rb +1 -1
  307. data/lib/temporal/workflow/execution_info.rb +54 -0
  308. data/lib/temporal/workflow/execution_status.rb +36 -0
  309. data/lib/temporal/workflow/id_reuse_policy.rb +36 -0
  310. data/lib/temporal/workflow/query_reject_condition.rb +33 -0
  311. data/lib/temporal.rb +4 -0
  312. data/lib/temporalio.rb +3 -1
  313. data/lib/thermite_patch.rb +23 -0
  314. data/temporalio.gemspec +41 -0
  315. metadata +543 -9
  316. data/temporal.gemspec +0 -20
@@ -0,0 +1,751 @@
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.history.v1;
26
+
27
+ option go_package = "go.temporal.io/api/history/v1;history";
28
+ option java_package = "io.temporal.api.history.v1";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "MessageProto";
31
+ option ruby_package = "Temporal::Api::History::V1";
32
+ option csharp_namespace = "Temporal.Api.History.V1";
33
+
34
+ import "google/protobuf/duration.proto";
35
+ import "google/protobuf/timestamp.proto";
36
+
37
+ import "dependencies/gogoproto/gogo.proto";
38
+
39
+ import "temporal/api/enums/v1/event_type.proto";
40
+ import "temporal/api/enums/v1/failed_cause.proto";
41
+ import "temporal/api/enums/v1/workflow.proto";
42
+ import "temporal/api/common/v1/message.proto";
43
+ import "temporal/api/failure/v1/message.proto";
44
+ import "temporal/api/taskqueue/v1/message.proto";
45
+ import "temporal/api/update/v1/message.proto";
46
+ import "temporal/api/workflow/v1/message.proto";
47
+
48
+ // Always the first event in workflow history
49
+ message WorkflowExecutionStartedEventAttributes {
50
+ temporal.api.common.v1.WorkflowType workflow_type = 1;
51
+ // If this workflow is a child, the namespace our parent lives in.
52
+ // SDKs and UI tools should use `parent_workflow_namespace` field but server must use `parent_workflow_namespace_id` only.
53
+ string parent_workflow_namespace = 2;
54
+ string parent_workflow_namespace_id = 27;
55
+ // Contains information about parent workflow execution that initiated the child workflow these attributes belong to.
56
+ // If the workflow these attributes belong to is not a child workflow of any other execution, this field will not be populated.
57
+ temporal.api.common.v1.WorkflowExecution parent_workflow_execution = 3;
58
+ // EventID of the child execution initiated event in parent workflow
59
+ int64 parent_initiated_event_id = 4;
60
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 5;
61
+ // SDK will deserialize this and provide it as arguments to the workflow function
62
+ temporal.api.common.v1.Payloads input = 6;
63
+ // Total workflow execution timeout including retries and continue as new.
64
+ google.protobuf.Duration workflow_execution_timeout = 7 [(gogoproto.stdduration) = true];
65
+ // Timeout of a single workflow run.
66
+ google.protobuf.Duration workflow_run_timeout = 8 [(gogoproto.stdduration) = true];
67
+ // Timeout of a single workflow task.
68
+ google.protobuf.Duration workflow_task_timeout = 9 [(gogoproto.stdduration) = true];
69
+ // Run id of the previous workflow which continued-as-new or retired or cron executed into this
70
+ // workflow.
71
+ string continued_execution_run_id = 10;
72
+ temporal.api.enums.v1.ContinueAsNewInitiator initiator = 11;
73
+ temporal.api.failure.v1.Failure continued_failure = 12;
74
+ temporal.api.common.v1.Payloads last_completion_result = 13;
75
+ // This is the run id when the WorkflowExecutionStarted event was written.
76
+ // A workflow reset changes the execution run_id, but preserves this field.
77
+ string original_execution_run_id = 14;
78
+ // Identity of the client who requested this execution
79
+ string identity = 15;
80
+ // This is the very first runId along the chain of ContinueAsNew, Retry, Cron and Reset.
81
+ // Used to identify a chain.
82
+ string first_execution_run_id = 16;
83
+ temporal.api.common.v1.RetryPolicy retry_policy = 17;
84
+ // Starting at 1, the number of times we have tried to execute this workflow
85
+ int32 attempt = 18;
86
+ // The absolute time at which the workflow will be timed out.
87
+ // This is passed without change to the next run/retry of a workflow.
88
+ google.protobuf.Timestamp workflow_execution_expiration_time = 19 [(gogoproto.stdtime) = true];
89
+ // If this workflow runs on a cron schedule, it will appear here
90
+ string cron_schedule = 20;
91
+ // For a cron workflow, this contains the amount of time between when this iteration of
92
+ // the cron workflow was scheduled and when it should run next per its cron_schedule.
93
+ google.protobuf.Duration first_workflow_task_backoff = 21 [(gogoproto.stdduration) = true];
94
+ temporal.api.common.v1.Memo memo = 22;
95
+ temporal.api.common.v1.SearchAttributes search_attributes = 23;
96
+ temporal.api.workflow.v1.ResetPoints prev_auto_reset_points = 24;
97
+ temporal.api.common.v1.Header header = 25;
98
+ // Version of the child execution initiated event in parent workflow
99
+ // It should be used together with parent_initiated_event_id to identify
100
+ // a child initiated event for global namespace
101
+ int64 parent_initiated_event_version = 26;
102
+ }
103
+
104
+ message WorkflowExecutionCompletedEventAttributes {
105
+ // Serialized result of workflow completion (ie: The return value of the workflow function)
106
+ temporal.api.common.v1.Payloads result = 1;
107
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
108
+ int64 workflow_task_completed_event_id = 2;
109
+ // If another run is started by cron, this contains the new run id.
110
+ string new_execution_run_id = 3;
111
+ }
112
+
113
+ message WorkflowExecutionFailedEventAttributes {
114
+ // Serialized result of workflow failure (ex: An exception thrown, or error returned)
115
+ temporal.api.failure.v1.Failure failure = 1;
116
+ temporal.api.enums.v1.RetryState retry_state = 2;
117
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
118
+ int64 workflow_task_completed_event_id = 3;
119
+ // If another run is started by cron or retry, this contains the new run id.
120
+ string new_execution_run_id = 4;
121
+ }
122
+
123
+ message WorkflowExecutionTimedOutEventAttributes {
124
+ temporal.api.enums.v1.RetryState retry_state = 1;
125
+ // If another run is started by cron or retry, this contains the new run id.
126
+ string new_execution_run_id = 2;
127
+ }
128
+
129
+ message WorkflowExecutionContinuedAsNewEventAttributes {
130
+ // The run ID of the new workflow started by this continue-as-new
131
+ string new_execution_run_id = 1;
132
+ temporal.api.common.v1.WorkflowType workflow_type = 2;
133
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 3;
134
+ temporal.api.common.v1.Payloads input = 4;
135
+ // Timeout of a single workflow run.
136
+ google.protobuf.Duration workflow_run_timeout = 5 [(gogoproto.stdduration) = true];
137
+ // Timeout of a single workflow task.
138
+ google.protobuf.Duration workflow_task_timeout = 6 [(gogoproto.stdduration) = true];
139
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
140
+ int64 workflow_task_completed_event_id = 7;
141
+ // TODO: How and is this used?
142
+ google.protobuf.Duration backoff_start_interval = 8 [(gogoproto.stdduration) = true];
143
+ temporal.api.enums.v1.ContinueAsNewInitiator initiator = 9;
144
+ // TODO: David are these right?
145
+ // Deprecated. If a workflow's retry policy would cause a new run to start when the current one
146
+ // has failed, this field would be populated with that failure. Now (when supported by server
147
+ // and sdk) the final event will be `WORKFLOW_EXECUTION_FAILED` with `new_execution_run_id` set.
148
+ temporal.api.failure.v1.Failure failure = 10;
149
+ // TODO: Is this the result of *this* workflow as it continued-as-new?
150
+ temporal.api.common.v1.Payloads last_completion_result = 11;
151
+ temporal.api.common.v1.Header header = 12;
152
+ temporal.api.common.v1.Memo memo = 13;
153
+ temporal.api.common.v1.SearchAttributes search_attributes = 14;
154
+
155
+ // workflow_execution_timeout is omitted as it shouldn't be overridden from within a workflow.
156
+ }
157
+
158
+ message WorkflowTaskScheduledEventAttributes {
159
+ // The task queue this workflow task was enqueued in, which could be a normal or sticky queue
160
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 1;
161
+ // How long the worker has to process this task once receiving it before it times out
162
+ //
163
+ // (-- api-linter: core::0140::prepositions=disabled
164
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
165
+ google.protobuf.Duration start_to_close_timeout = 2 [(gogoproto.stdduration) = true];
166
+ // Starting at 1, how many attempts there have been to complete this task
167
+ int32 attempt = 3;
168
+ }
169
+
170
+ message WorkflowTaskStartedEventAttributes {
171
+ // The id of the `WORKFLOW_TASK_SCHEDULED` event this task corresponds to
172
+ int64 scheduled_event_id = 1;
173
+ // Identity of the worker who picked up this task
174
+ string identity = 2;
175
+ // TODO: ? Appears unused?
176
+ string request_id = 3;
177
+ // True if this workflow should continue-as-new soon because its history size (in
178
+ // either event count or bytes) is getting large.
179
+ bool suggest_continue_as_new = 4;
180
+ // Total history size in bytes, which the workflow might use to decide when to
181
+ // continue-as-new regardless of the suggestion. Note that history event count is
182
+ // just the event id of this event, so we don't include it explicitly here.
183
+ int64 history_size_bytes = 5;
184
+ }
185
+
186
+ message WorkflowTaskCompletedEventAttributes {
187
+ // The id of the `WORKFLOW_TASK_SCHEDULED` event this task corresponds to
188
+ int64 scheduled_event_id = 1;
189
+ // The id of the `WORKFLOW_TASK_STARTED` event this task corresponds to
190
+ int64 started_event_id = 2;
191
+ // Identity of the worker who completed this task
192
+ string identity = 3;
193
+ // Binary ID of the worker who completed this task
194
+ string binary_checksum = 4;
195
+ }
196
+
197
+ message WorkflowTaskTimedOutEventAttributes {
198
+ // The id of the `WORKFLOW_TASK_SCHEDULED` event this task corresponds to
199
+ int64 scheduled_event_id = 1;
200
+ // The id of the `WORKFLOW_TASK_STARTED` event this task corresponds to
201
+ int64 started_event_id = 2;
202
+ temporal.api.enums.v1.TimeoutType timeout_type = 3;
203
+ }
204
+
205
+ message WorkflowTaskFailedEventAttributes {
206
+ // The id of the `WORKFLOW_TASK_SCHEDULED` event this task corresponds to
207
+ int64 scheduled_event_id = 1;
208
+ // The id of the `WORKFLOW_TASK_STARTED` event this task corresponds to
209
+ int64 started_event_id = 2;
210
+ temporal.api.enums.v1.WorkflowTaskFailedCause cause = 3;
211
+ // The failure details
212
+ temporal.api.failure.v1.Failure failure = 4;
213
+ // If a worker explicitly failed this task, it's identity. TODO: What is this set to if server fails the task?
214
+ string identity = 5;
215
+ // The original run id of the workflow. For reset workflow.
216
+ string base_run_id = 6;
217
+ // If the workflow is being reset, the new run id.
218
+ string new_run_id = 7;
219
+ // TODO: ?
220
+ int64 fork_event_version = 8;
221
+ // If a worker explicitly failed this task, it's binary id
222
+ string binary_checksum = 9;
223
+ }
224
+
225
+ message ActivityTaskScheduledEventAttributes {
226
+ // The worker/user assigned identifier for the activity
227
+ string activity_id = 1;
228
+ temporal.api.common.v1.ActivityType activity_type = 2;
229
+ // This used to be a `namespace` field which allowed to schedule activity in another namespace.
230
+ reserved 3;
231
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
232
+ temporal.api.common.v1.Header header = 5;
233
+ temporal.api.common.v1.Payloads input = 6;
234
+ // Indicates how long the caller is willing to wait for an activity completion. Limits how long
235
+ // retries will be attempted. Either this or `start_to_close_timeout` must be specified.
236
+ //
237
+ // (-- api-linter: core::0140::prepositions=disabled
238
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
239
+ google.protobuf.Duration schedule_to_close_timeout = 7 [(gogoproto.stdduration) = true];
240
+ // Limits time an activity task can stay in a task queue before a worker picks it up. This
241
+ // timeout is always non retryable, as all a retry would achieve is to put it back into the same
242
+ // queue. Defaults to `schedule_to_close_timeout` or workflow execution timeout if not
243
+ // specified.
244
+ //
245
+ // (-- api-linter: core::0140::prepositions=disabled
246
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
247
+ google.protobuf.Duration schedule_to_start_timeout = 8 [(gogoproto.stdduration) = true];
248
+ // Maximum time an activity is allowed to execute after being picked up by a worker. This
249
+ // timeout is always retryable. Either this or `schedule_to_close_timeout` must be
250
+ // specified.
251
+ //
252
+ // (-- api-linter: core::0140::prepositions=disabled
253
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
254
+ google.protobuf.Duration start_to_close_timeout = 9 [(gogoproto.stdduration) = true];
255
+ // Maximum permitted time between successful worker heartbeats.
256
+ google.protobuf.Duration heartbeat_timeout = 10 [(gogoproto.stdduration) = true];
257
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
258
+ int64 workflow_task_completed_event_id = 11;
259
+ // Activities are assigned a default retry policy controlled by the service's dynamic
260
+ // configuration. Retries will happen up to `schedule_to_close_timeout`. To disable retries set
261
+ // retry_policy.maximum_attempts to 1.
262
+ temporal.api.common.v1.RetryPolicy retry_policy = 12;
263
+ }
264
+
265
+ message ActivityTaskStartedEventAttributes {
266
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this task corresponds to
267
+ int64 scheduled_event_id = 1;
268
+ // id of the worker that picked up this task
269
+ string identity = 2;
270
+ // TODO ??
271
+ string request_id = 3;
272
+ // Starting at 1, the number of times this task has been attempted
273
+ int32 attempt = 4;
274
+ // Will be set to the most recent failure details, if this task has previously failed and then
275
+ // been retried.
276
+ temporal.api.failure.v1.Failure last_failure = 5;
277
+ }
278
+
279
+ message ActivityTaskCompletedEventAttributes {
280
+ // Serialized results of the activity. IE: The return value of the activity function
281
+ temporal.api.common.v1.Payloads result = 1;
282
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this completion corresponds to
283
+ int64 scheduled_event_id = 2;
284
+ // The id of the `ACTIVITY_TASK_STARTED` event this completion corresponds to
285
+ int64 started_event_id = 3;
286
+ // id of the worker that completed this task
287
+ string identity = 4;
288
+ }
289
+
290
+ message ActivityTaskFailedEventAttributes {
291
+ // Failure details
292
+ temporal.api.failure.v1.Failure failure = 1;
293
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this failure corresponds to
294
+ int64 scheduled_event_id = 2;
295
+ // The id of the `ACTIVITY_TASK_STARTED` event this failure corresponds to
296
+ int64 started_event_id = 3;
297
+ // id of the worker that failed this task
298
+ string identity = 4;
299
+ temporal.api.enums.v1.RetryState retry_state = 5;
300
+ }
301
+
302
+ message ActivityTaskTimedOutEventAttributes {
303
+ // If this activity had failed, was retried, and then timed out, that failure is stored as the
304
+ // `cause` in here.
305
+ temporal.api.failure.v1.Failure failure = 1;
306
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this timeout corresponds to
307
+ int64 scheduled_event_id = 2;
308
+ // The id of the `ACTIVITY_TASK_STARTED` event this timeout corresponds to
309
+ int64 started_event_id = 3;
310
+ temporal.api.enums.v1.RetryState retry_state = 4;
311
+ }
312
+
313
+ message ActivityTaskCancelRequestedEventAttributes {
314
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this cancel request corresponds to
315
+ int64 scheduled_event_id = 1;
316
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
317
+ int64 workflow_task_completed_event_id = 2;
318
+ }
319
+
320
+ message ActivityTaskCanceledEventAttributes {
321
+ // Additional information that the activity reported upon confirming cancellation
322
+ temporal.api.common.v1.Payloads details = 1;
323
+ // id of the most recent `ACTIVITY_TASK_CANCEL_REQUESTED` event which refers to the same
324
+ // activity
325
+ int64 latest_cancel_requested_event_id = 2;
326
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this cancel confirmation corresponds to
327
+ int64 scheduled_event_id = 3;
328
+ // The id of the `ACTIVITY_TASK_STARTED` event this cancel confirmation corresponds to
329
+ int64 started_event_id = 4;
330
+ // id of the worker who canceled this activity
331
+ string identity = 5;
332
+ }
333
+
334
+ message TimerStartedEventAttributes {
335
+ // The worker/user assigned id for this timer
336
+ string timer_id = 1;
337
+ // How long until this timer fires
338
+ //
339
+ // (-- api-linter: core::0140::prepositions=disabled
340
+ // aip.dev/not-precedent: "to" is used to indicate interval. --)
341
+ google.protobuf.Duration start_to_fire_timeout = 2 [(gogoproto.stdduration) = true];
342
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
343
+ int64 workflow_task_completed_event_id = 3;
344
+ }
345
+
346
+ message TimerFiredEventAttributes {
347
+ // Will match the `timer_id` from `TIMER_STARTED` event for this timer
348
+ string timer_id = 1;
349
+ // The id of the `TIMER_STARTED` event itself
350
+ int64 started_event_id = 2;
351
+ }
352
+
353
+ message TimerCanceledEventAttributes {
354
+ // Will match the `timer_id` from `TIMER_STARTED` event for this timer
355
+ string timer_id = 1;
356
+ // The id of the `TIMER_STARTED` event itself
357
+ int64 started_event_id = 2;
358
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
359
+ int64 workflow_task_completed_event_id = 3;
360
+ // The id of the worker who requested this cancel
361
+ string identity = 4;
362
+ }
363
+
364
+ message WorkflowExecutionCancelRequestedEventAttributes {
365
+ // User provided reason for requesting cancellation
366
+ // TODO: shall we create a new field with name "reason" and deprecate this one?
367
+ string cause = 1;
368
+ // TODO: Is this the ID of the event in the workflow which initiated this cancel, if there was one?
369
+ int64 external_initiated_event_id = 2;
370
+ temporal.api.common.v1.WorkflowExecution external_workflow_execution = 3;
371
+ // id of the worker or client who requested this cancel
372
+ string identity = 4;
373
+ }
374
+
375
+ message WorkflowExecutionCanceledEventAttributes {
376
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
377
+ int64 workflow_task_completed_event_id = 1;
378
+ temporal.api.common.v1.Payloads details = 2;
379
+ }
380
+
381
+ message MarkerRecordedEventAttributes {
382
+ // Workers use this to identify the "types" of various markers. Ex: Local activity, side effect.
383
+ string marker_name = 1;
384
+ // Serialized information recorded in the marker
385
+ map<string, temporal.api.common.v1.Payloads> details = 2;
386
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
387
+ int64 workflow_task_completed_event_id = 3;
388
+ temporal.api.common.v1.Header header = 4;
389
+ // Some uses of markers, like a local activity, could "fail". If they did that is recorded here.
390
+ temporal.api.failure.v1.Failure failure = 5;
391
+ }
392
+
393
+ message WorkflowExecutionSignaledEventAttributes {
394
+ // The name/type of the signal to fire
395
+ string signal_name = 1;
396
+ // Will be deserialized and provided as argument(s) to the signal handler
397
+ temporal.api.common.v1.Payloads input = 2;
398
+ // id of the worker/client who sent this signal
399
+ string identity = 3;
400
+ // Headers that were passed by the sender of the signal and copied by temporal
401
+ // server into the workflow task.
402
+ temporal.api.common.v1.Header header = 4;
403
+ }
404
+
405
+ message WorkflowExecutionTerminatedEventAttributes {
406
+ // User/client provided reason for termination
407
+ string reason = 1;
408
+ temporal.api.common.v1.Payloads details = 2;
409
+ // id of the client who requested termination
410
+ string identity = 3;
411
+ }
412
+
413
+ message RequestCancelExternalWorkflowExecutionInitiatedEventAttributes {
414
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
415
+ int64 workflow_task_completed_event_id = 1;
416
+ // The namespace the workflow to be cancelled lives in.
417
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
418
+ string namespace = 2;
419
+ string namespace_id = 7;
420
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
421
+ // Deprecated
422
+ string control = 4;
423
+ // Workers are expected to set this to true if the workflow they are requesting to cancel is
424
+ // a child of the workflow which issued the request
425
+ bool child_workflow_only = 5;
426
+ // Reason for requesting the cancellation
427
+ string reason = 6;
428
+ }
429
+
430
+ message RequestCancelExternalWorkflowExecutionFailedEventAttributes {
431
+ temporal.api.enums.v1.CancelExternalWorkflowExecutionFailedCause cause = 1;
432
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
433
+ int64 workflow_task_completed_event_id = 2;
434
+ // Namespace of the workflow which failed to cancel.
435
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
436
+ string namespace = 3;
437
+ string namespace_id = 7;
438
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 4;
439
+ // id of the `REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED` event this failure
440
+ // corresponds to
441
+ int64 initiated_event_id = 5;
442
+ // Deprecated
443
+ string control = 6;
444
+ }
445
+
446
+ message ExternalWorkflowExecutionCancelRequestedEventAttributes {
447
+ // id of the `REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED` event this event corresponds
448
+ // to
449
+ int64 initiated_event_id = 1;
450
+ // Namespace of the to-be-cancelled workflow.
451
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
452
+ string namespace = 2;
453
+ string namespace_id = 4;
454
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
455
+ }
456
+
457
+ message SignalExternalWorkflowExecutionInitiatedEventAttributes {
458
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
459
+ int64 workflow_task_completed_event_id = 1;
460
+ // Namespace of the to-be-signalled workflow.
461
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
462
+ string namespace = 2;
463
+ string namespace_id = 9;
464
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
465
+ // name/type of the signal to fire in the external workflow
466
+ string signal_name = 4;
467
+ // Serialized arguments to provide to the signal handler
468
+ temporal.api.common.v1.Payloads input = 5;
469
+ // Deprecated
470
+ string control = 6;
471
+ // Workers are expected to set this to true if the workflow they are requesting to cancel is
472
+ // a child of the workflow which issued the request
473
+ bool child_workflow_only = 7;
474
+ temporal.api.common.v1.Header header = 8;
475
+ }
476
+
477
+ message SignalExternalWorkflowExecutionFailedEventAttributes {
478
+ temporal.api.enums.v1.SignalExternalWorkflowExecutionFailedCause cause = 1;
479
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
480
+ int64 workflow_task_completed_event_id = 2;
481
+ // Namespace of the workflow which failed the signal.
482
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
483
+ string namespace = 3;
484
+ string namespace_id = 7;
485
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 4;
486
+ int64 initiated_event_id = 5;
487
+ // Deprecated
488
+ string control = 6;
489
+ }
490
+
491
+ message ExternalWorkflowExecutionSignaledEventAttributes {
492
+ // id of the `SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_INITIATED` event this event corresponds to
493
+ int64 initiated_event_id = 1;
494
+ // Namespace of the workflow which was signaled.
495
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
496
+ string namespace = 2;
497
+ string namespace_id = 5;
498
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
499
+ // Deprecated
500
+ string control = 4;
501
+ }
502
+
503
+ message UpsertWorkflowSearchAttributesEventAttributes {
504
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
505
+ int64 workflow_task_completed_event_id = 1;
506
+ temporal.api.common.v1.SearchAttributes search_attributes = 2;
507
+ }
508
+
509
+ message StartChildWorkflowExecutionInitiatedEventAttributes {
510
+ // Namespace of the child workflow.
511
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
512
+ string namespace = 1;
513
+ string namespace_id = 18;
514
+ string workflow_id = 2;
515
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
516
+ temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
517
+ temporal.api.common.v1.Payloads input = 5;
518
+ // Total workflow execution timeout including retries and continue as new.
519
+ google.protobuf.Duration workflow_execution_timeout = 6 [(gogoproto.stdduration) = true];
520
+ // Timeout of a single workflow run.
521
+ google.protobuf.Duration workflow_run_timeout = 7 [(gogoproto.stdduration) = true];
522
+ // Timeout of a single workflow task.
523
+ google.protobuf.Duration workflow_task_timeout = 8 [(gogoproto.stdduration) = true];
524
+ // Default: PARENT_CLOSE_POLICY_TERMINATE.
525
+ temporal.api.enums.v1.ParentClosePolicy parent_close_policy = 9;
526
+ // Deprecated
527
+ string control = 10;
528
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
529
+ int64 workflow_task_completed_event_id = 11;
530
+ // Default: WORKFLOW_ID_REUSE_POLICY_ALLOW_DUPLICATE.
531
+ temporal.api.enums.v1.WorkflowIdReusePolicy workflow_id_reuse_policy = 12;
532
+ temporal.api.common.v1.RetryPolicy retry_policy = 13;
533
+ // If this child runs on a cron schedule, it will appear here
534
+ string cron_schedule = 14;
535
+ temporal.api.common.v1.Header header = 15;
536
+ temporal.api.common.v1.Memo memo = 16;
537
+ temporal.api.common.v1.SearchAttributes search_attributes = 17;
538
+ }
539
+
540
+ message StartChildWorkflowExecutionFailedEventAttributes {
541
+ // Namespace of the child workflow.
542
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
543
+ string namespace = 1;
544
+ string namespace_id = 8;
545
+ string workflow_id = 2;
546
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
547
+ temporal.api.enums.v1.StartChildWorkflowExecutionFailedCause cause = 4;
548
+ // Deprecated
549
+ string control = 5;
550
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
551
+ int64 initiated_event_id = 6;
552
+ // The `WORKFLOW_TASK_COMPLETED` event which this command was reported with
553
+ int64 workflow_task_completed_event_id = 7;
554
+ }
555
+
556
+ message ChildWorkflowExecutionStartedEventAttributes {
557
+ // Namespace of the child workflow.
558
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
559
+ string namespace = 1;
560
+ string namespace_id = 6;
561
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
562
+ int64 initiated_event_id = 2;
563
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
564
+ temporal.api.common.v1.WorkflowType workflow_type = 4;
565
+ temporal.api.common.v1.Header header = 5;
566
+ }
567
+
568
+ message ChildWorkflowExecutionCompletedEventAttributes {
569
+ temporal.api.common.v1.Payloads result = 1;
570
+ // Namespace of the child workflow.
571
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
572
+ string namespace = 2;
573
+ string namespace_id = 7;
574
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
575
+ temporal.api.common.v1.WorkflowType workflow_type = 4;
576
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
577
+ int64 initiated_event_id = 5;
578
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
579
+ int64 started_event_id = 6;
580
+ }
581
+
582
+ message ChildWorkflowExecutionFailedEventAttributes {
583
+ temporal.api.failure.v1.Failure failure = 1;
584
+ // Namespace of the child workflow.
585
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
586
+ string namespace = 2;
587
+ string namespace_id = 8;
588
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
589
+ temporal.api.common.v1.WorkflowType workflow_type = 4;
590
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
591
+ int64 initiated_event_id = 5;
592
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
593
+ int64 started_event_id = 6;
594
+ temporal.api.enums.v1.RetryState retry_state = 7;
595
+ }
596
+
597
+ message ChildWorkflowExecutionCanceledEventAttributes {
598
+ temporal.api.common.v1.Payloads details = 1;
599
+ // Namespace of the child workflow.
600
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
601
+ string namespace = 2;
602
+ string namespace_id = 7;
603
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 3;
604
+ temporal.api.common.v1.WorkflowType workflow_type = 4;
605
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
606
+ int64 initiated_event_id = 5;
607
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
608
+ int64 started_event_id = 6;
609
+ }
610
+
611
+ message ChildWorkflowExecutionTimedOutEventAttributes {
612
+ // Namespace of the child workflow.
613
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
614
+ string namespace = 1;
615
+ string namespace_id = 7;
616
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
617
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
618
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
619
+ int64 initiated_event_id = 4;
620
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
621
+ int64 started_event_id = 5;
622
+ temporal.api.enums.v1.RetryState retry_state = 6;
623
+ }
624
+
625
+ message ChildWorkflowExecutionTerminatedEventAttributes {
626
+ // Namespace of the child workflow.
627
+ // SDKs and UI tools should use `namespace` field but server must use `namespace_id` only.
628
+ string namespace = 1;
629
+ string namespace_id = 6;
630
+ temporal.api.common.v1.WorkflowExecution workflow_execution = 2;
631
+ temporal.api.common.v1.WorkflowType workflow_type = 3;
632
+ // Id of the `START_CHILD_WORKFLOW_EXECUTION_INITIATED` event which this event corresponds to
633
+ int64 initiated_event_id = 4;
634
+ // Id of the `CHILD_WORKFLOW_EXECUTION_STARTED` event which this event corresponds to
635
+ int64 started_event_id = 5;
636
+ }
637
+
638
+ message WorkflowUpdateRequestedEventAttributes {
639
+ temporal.api.common.v1.Header header = 1;
640
+ string request_id = 2;
641
+ string update_id = 3;
642
+ temporal.api.update.v1.WorkflowUpdate update = 4;
643
+ }
644
+
645
+ message WorkflowUpdateAcceptedEventAttributes {
646
+ temporal.api.common.v1.Header header = 1;
647
+ string update_id = 2;
648
+ }
649
+
650
+ message WorkflowUpdateCompletedEventAttributes {
651
+ temporal.api.common.v1.Header system_header = 1;
652
+ string update_id = 3;
653
+ oneof result {
654
+ temporal.api.common.v1.Payloads success = 4;
655
+ temporal.api.failure.v1.Failure failure = 5;
656
+ }
657
+ }
658
+
659
+ message WorkflowPropertiesModifiedExternallyEventAttributes {
660
+ // If set to a nonempty string, future workflow tasks for this workflow shall be dispatched on
661
+ // the provided queue.
662
+ string new_task_queue = 1;
663
+ // If set, update the workflow task timeout to this value.
664
+ google.protobuf.Duration new_workflow_task_timeout = 2 [(gogoproto.stdduration) = true];
665
+ // If set, update the workflow run timeout to this value. May be set to 0 for no timeout.
666
+ google.protobuf.Duration new_workflow_run_timeout = 3 [(gogoproto.stdduration) = true];
667
+ // If set, update the workflow execution timeout to this value. May be set to 0 for no timeout.
668
+ google.protobuf.Duration new_workflow_execution_timeout = 4 [(gogoproto.stdduration) = true];
669
+ // If set, update the workflow memo with the provided values. The values will be merged with
670
+ // the existing memo. If the user wants to delete values, a default/empty Payload should be
671
+ // used as the value for the key being deleted.
672
+ temporal.api.common.v1.Memo upserted_memo = 5;
673
+ }
674
+
675
+ message ActivityPropertiesModifiedExternallyEventAttributes {
676
+ // The id of the `ACTIVITY_TASK_SCHEDULED` event this modification corresponds to.
677
+ int64 scheduled_event_id = 1;
678
+ // If set, update the retry policy of the activity, replacing it with the specified one.
679
+ // The number of attempts at the activity is preserved.
680
+ temporal.api.common.v1.RetryPolicy new_retry_policy = 2;
681
+ }
682
+
683
+ // History events are the method by which Temporal SDKs advance (or recreate) workflow state.
684
+ // See the `EventType` enum for more info about what each event is for.
685
+ message HistoryEvent {
686
+ // Monotonically increasing event number, starts at 1.
687
+ int64 event_id = 1;
688
+ google.protobuf.Timestamp event_time = 2 [(gogoproto.stdtime) = true];
689
+ temporal.api.enums.v1.EventType event_type = 3;
690
+ // TODO: What is this? Appears unused by SDKs
691
+ int64 version = 4;
692
+ // TODO: What is this? Appears unused by SDKs
693
+ int64 task_id = 5;
694
+ // Set to true when the SDK may ignore the event as it does not impact workflow state or
695
+ // information in any way that the SDK need be concerned with. If an SDK encounters an event
696
+ // type which it does not understand, it must error unless this is true. If it is true, it's
697
+ // acceptable for the event type and/or attributes to be uninterpretable.
698
+ bool worker_may_ignore = 300;
699
+ // The event details. The type must match that in `event_type`.
700
+ oneof attributes {
701
+ WorkflowExecutionStartedEventAttributes workflow_execution_started_event_attributes = 6;
702
+ WorkflowExecutionCompletedEventAttributes workflow_execution_completed_event_attributes = 7;
703
+ WorkflowExecutionFailedEventAttributes workflow_execution_failed_event_attributes = 8;
704
+ WorkflowExecutionTimedOutEventAttributes workflow_execution_timed_out_event_attributes = 9;
705
+ WorkflowTaskScheduledEventAttributes workflow_task_scheduled_event_attributes = 10;
706
+ WorkflowTaskStartedEventAttributes workflow_task_started_event_attributes = 11;
707
+ WorkflowTaskCompletedEventAttributes workflow_task_completed_event_attributes = 12;
708
+ WorkflowTaskTimedOutEventAttributes workflow_task_timed_out_event_attributes = 13;
709
+ WorkflowTaskFailedEventAttributes workflow_task_failed_event_attributes = 14;
710
+ ActivityTaskScheduledEventAttributes activity_task_scheduled_event_attributes = 15;
711
+ ActivityTaskStartedEventAttributes activity_task_started_event_attributes = 16;
712
+ ActivityTaskCompletedEventAttributes activity_task_completed_event_attributes = 17;
713
+ ActivityTaskFailedEventAttributes activity_task_failed_event_attributes = 18;
714
+ ActivityTaskTimedOutEventAttributes activity_task_timed_out_event_attributes = 19;
715
+ TimerStartedEventAttributes timer_started_event_attributes = 20;
716
+ TimerFiredEventAttributes timer_fired_event_attributes = 21;
717
+ ActivityTaskCancelRequestedEventAttributes activity_task_cancel_requested_event_attributes = 22;
718
+ ActivityTaskCanceledEventAttributes activity_task_canceled_event_attributes = 23;
719
+ TimerCanceledEventAttributes timer_canceled_event_attributes = 24;
720
+ MarkerRecordedEventAttributes marker_recorded_event_attributes = 25;
721
+ WorkflowExecutionSignaledEventAttributes workflow_execution_signaled_event_attributes = 26;
722
+ WorkflowExecutionTerminatedEventAttributes workflow_execution_terminated_event_attributes = 27;
723
+ WorkflowExecutionCancelRequestedEventAttributes workflow_execution_cancel_requested_event_attributes = 28;
724
+ WorkflowExecutionCanceledEventAttributes workflow_execution_canceled_event_attributes = 29;
725
+ RequestCancelExternalWorkflowExecutionInitiatedEventAttributes request_cancel_external_workflow_execution_initiated_event_attributes = 30;
726
+ RequestCancelExternalWorkflowExecutionFailedEventAttributes request_cancel_external_workflow_execution_failed_event_attributes = 31;
727
+ ExternalWorkflowExecutionCancelRequestedEventAttributes external_workflow_execution_cancel_requested_event_attributes = 32;
728
+ WorkflowExecutionContinuedAsNewEventAttributes workflow_execution_continued_as_new_event_attributes = 33;
729
+ StartChildWorkflowExecutionInitiatedEventAttributes start_child_workflow_execution_initiated_event_attributes = 34;
730
+ StartChildWorkflowExecutionFailedEventAttributes start_child_workflow_execution_failed_event_attributes = 35;
731
+ ChildWorkflowExecutionStartedEventAttributes child_workflow_execution_started_event_attributes = 36;
732
+ ChildWorkflowExecutionCompletedEventAttributes child_workflow_execution_completed_event_attributes = 37;
733
+ ChildWorkflowExecutionFailedEventAttributes child_workflow_execution_failed_event_attributes = 38;
734
+ ChildWorkflowExecutionCanceledEventAttributes child_workflow_execution_canceled_event_attributes = 39;
735
+ ChildWorkflowExecutionTimedOutEventAttributes child_workflow_execution_timed_out_event_attributes = 40;
736
+ ChildWorkflowExecutionTerminatedEventAttributes child_workflow_execution_terminated_event_attributes = 41;
737
+ SignalExternalWorkflowExecutionInitiatedEventAttributes signal_external_workflow_execution_initiated_event_attributes = 42;
738
+ SignalExternalWorkflowExecutionFailedEventAttributes signal_external_workflow_execution_failed_event_attributes = 43;
739
+ ExternalWorkflowExecutionSignaledEventAttributes external_workflow_execution_signaled_event_attributes = 44;
740
+ UpsertWorkflowSearchAttributesEventAttributes upsert_workflow_search_attributes_event_attributes = 45;
741
+ WorkflowUpdateRequestedEventAttributes workflow_update_requested_event_attributes = 46;
742
+ WorkflowUpdateAcceptedEventAttributes workflow_update_accepted_event_attributes = 47;
743
+ WorkflowUpdateCompletedEventAttributes workflow_update_completed_event_attributes = 48;
744
+ WorkflowPropertiesModifiedExternallyEventAttributes workflow_properties_modified_externally_event_attributes = 49;
745
+ ActivityPropertiesModifiedExternallyEventAttributes activity_properties_modified_externally_event_attributes = 50;
746
+ }
747
+ }
748
+
749
+ message History {
750
+ repeated HistoryEvent events = 1;
751
+ }