temporalio 0.0.1 → 0.1.0

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.
Files changed (310) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +180 -7
  3. data/bridge/Cargo.lock +208 -76
  4. data/bridge/Cargo.toml +5 -2
  5. data/bridge/sdk-core/Cargo.toml +1 -1
  6. data/bridge/sdk-core/README.md +20 -10
  7. data/bridge/sdk-core/client/Cargo.toml +1 -1
  8. data/bridge/sdk-core/client/src/lib.rs +227 -59
  9. data/bridge/sdk-core/client/src/metrics.rs +17 -8
  10. data/bridge/sdk-core/client/src/raw.rs +13 -12
  11. data/bridge/sdk-core/client/src/retry.rs +132 -43
  12. data/bridge/sdk-core/core/Cargo.toml +28 -15
  13. data/bridge/sdk-core/core/benches/workflow_replay.rs +13 -10
  14. data/bridge/sdk-core/core/src/abstractions.rs +225 -36
  15. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +217 -79
  16. data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
  17. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +565 -34
  18. data/bridge/sdk-core/core/src/core_tests/queries.rs +247 -90
  19. data/bridge/sdk-core/core/src/core_tests/workers.rs +3 -5
  20. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +1 -1
  21. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +430 -67
  22. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
  23. data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
  24. data/bridge/sdk-core/core/src/lib.rs +148 -34
  25. data/bridge/sdk-core/core/src/protosext/mod.rs +1 -1
  26. data/bridge/sdk-core/core/src/replay/mod.rs +185 -41
  27. data/bridge/sdk-core/core/src/telemetry/log_export.rs +190 -0
  28. data/bridge/sdk-core/core/src/telemetry/metrics.rs +219 -140
  29. data/bridge/sdk-core/core/src/telemetry/mod.rs +326 -315
  30. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +20 -14
  31. data/bridge/sdk-core/core/src/test_help/mod.rs +85 -21
  32. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
  33. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
  34. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +364 -128
  35. data/bridge/sdk-core/core/src/worker/activities.rs +263 -170
  36. data/bridge/sdk-core/core/src/worker/client/mocks.rs +23 -3
  37. data/bridge/sdk-core/core/src/worker/client.rs +48 -6
  38. data/bridge/sdk-core/core/src/worker/mod.rs +186 -75
  39. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
  40. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +13 -24
  41. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +879 -226
  42. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +101 -48
  43. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +8 -12
  44. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +6 -9
  45. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +90 -32
  46. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +6 -9
  47. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +7 -10
  48. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +6 -9
  49. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +160 -83
  50. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +36 -54
  51. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +179 -0
  52. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +104 -157
  53. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +8 -12
  54. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -13
  55. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +10 -4
  56. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -11
  57. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
  58. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +395 -299
  59. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +12 -20
  60. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +33 -18
  61. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1032 -374
  62. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +525 -392
  63. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
  64. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
  65. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +3 -6
  66. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
  67. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
  68. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +456 -681
  69. data/bridge/sdk-core/core-api/Cargo.toml +6 -4
  70. data/bridge/sdk-core/core-api/src/errors.rs +1 -34
  71. data/bridge/sdk-core/core-api/src/lib.rs +7 -45
  72. data/bridge/sdk-core/core-api/src/telemetry.rs +141 -0
  73. data/bridge/sdk-core/core-api/src/worker.rs +27 -1
  74. data/bridge/sdk-core/etc/deps.svg +115 -140
  75. data/bridge/sdk-core/etc/regen-depgraph.sh +5 -0
  76. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
  77. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +1 -1
  78. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
  79. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  80. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  81. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  82. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -3
  83. data/bridge/sdk-core/protos/api_upstream/build/go.mod +7 -0
  84. data/bridge/sdk-core/protos/api_upstream/build/go.sum +5 -0
  85. data/bridge/sdk-core/protos/api_upstream/{temporal/api/enums/v1/cluster.proto → build/tools.go} +7 -18
  86. data/bridge/sdk-core/protos/api_upstream/go.mod +6 -0
  87. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +12 -9
  88. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +15 -26
  89. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +13 -2
  90. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
  91. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +4 -9
  92. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
  93. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +10 -8
  94. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +28 -2
  95. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
  96. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
  97. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
  98. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
  99. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
  100. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +24 -19
  101. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
  102. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
  103. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
  104. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
  105. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +62 -26
  106. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +4 -2
  107. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +24 -61
  108. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -21
  109. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +57 -0
  110. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
  111. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
  112. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +110 -31
  113. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
  114. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +4 -4
  115. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +71 -6
  116. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
  117. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +3 -2
  118. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +111 -36
  119. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +19 -5
  120. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
  121. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
  122. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
  123. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
  124. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
  125. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
  126. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +9 -0
  127. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +9 -1
  128. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
  129. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
  130. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
  131. data/bridge/sdk-core/sdk/Cargo.toml +4 -3
  132. data/bridge/sdk-core/sdk/src/interceptors.rs +36 -3
  133. data/bridge/sdk-core/sdk/src/lib.rs +94 -25
  134. data/bridge/sdk-core/sdk/src/workflow_context.rs +13 -2
  135. data/bridge/sdk-core/sdk/src/workflow_future.rs +10 -13
  136. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
  137. data/bridge/sdk-core/sdk-core-protos/build.rs +36 -2
  138. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +164 -104
  139. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +27 -23
  140. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +252 -74
  141. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
  142. data/bridge/sdk-core/test-utils/Cargo.toml +4 -1
  143. data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
  144. data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
  145. data/bridge/sdk-core/test-utils/src/lib.rs +161 -50
  146. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
  147. data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
  148. data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
  149. data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
  150. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
  151. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +10 -5
  152. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +239 -0
  153. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -60
  154. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
  155. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
  156. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
  157. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
  158. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
  159. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
  160. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
  161. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
  162. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +151 -116
  163. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +54 -0
  164. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
  165. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +115 -24
  166. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
  167. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
  168. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
  169. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
  170. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
  171. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +27 -18
  172. data/bridge/sdk-core/tests/main.rs +8 -16
  173. data/bridge/sdk-core/tests/runner.rs +75 -36
  174. data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
  175. data/bridge/src/connection.rs +117 -82
  176. data/bridge/src/lib.rs +356 -42
  177. data/bridge/src/runtime.rs +10 -3
  178. data/bridge/src/test_server.rs +153 -0
  179. data/bridge/src/worker.rs +133 -9
  180. data/lib/gen/temporal/api/batch/v1/message_pb.rb +8 -6
  181. data/lib/gen/temporal/api/command/v1/message_pb.rb +10 -16
  182. data/lib/gen/temporal/api/common/v1/message_pb.rb +5 -1
  183. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +2 -1
  184. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +3 -3
  185. data/lib/gen/temporal/api/enums/v1/common_pb.rb +2 -1
  186. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +5 -4
  187. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +9 -1
  188. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +1 -1
  189. data/lib/gen/temporal/api/enums/v1/query_pb.rb +1 -1
  190. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +1 -1
  191. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +1 -1
  192. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +1 -1
  193. data/lib/gen/temporal/api/enums/v1/update_pb.rb +7 -10
  194. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +1 -1
  195. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +1 -1
  196. data/lib/gen/temporal/api/failure/v1/message_pb.rb +1 -1
  197. data/lib/gen/temporal/api/filter/v1/message_pb.rb +1 -1
  198. data/lib/gen/temporal/api/history/v1/message_pb.rb +34 -25
  199. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +2 -1
  200. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +14 -51
  201. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +1 -1
  202. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
  203. data/lib/gen/temporal/api/query/v1/message_pb.rb +1 -1
  204. data/lib/gen/temporal/api/replication/v1/message_pb.rb +1 -1
  205. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +22 -1
  206. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
  207. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +2 -2
  208. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
  209. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
  210. data/lib/gen/temporal/api/update/v1/message_pb.rb +49 -3
  211. data/lib/gen/temporal/api/version/v1/message_pb.rb +1 -1
  212. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +2 -1
  213. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +47 -20
  214. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +1 -1
  215. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
  216. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
  217. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
  218. data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
  219. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
  220. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
  221. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +28 -21
  222. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +32 -24
  223. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
  224. data/lib/temporalio/activity/context.rb +102 -0
  225. data/lib/temporalio/activity/info.rb +67 -0
  226. data/lib/temporalio/activity.rb +85 -0
  227. data/lib/temporalio/bridge/connect_options.rb +15 -0
  228. data/lib/temporalio/bridge/error.rb +8 -0
  229. data/lib/temporalio/bridge/retry_config.rb +24 -0
  230. data/lib/temporalio/bridge/tls_options.rb +19 -0
  231. data/lib/temporalio/bridge.rb +14 -0
  232. data/lib/{temporal → temporalio}/client/implementation.rb +57 -56
  233. data/lib/{temporal → temporalio}/client/workflow_handle.rb +35 -35
  234. data/lib/{temporal → temporalio}/client.rb +19 -32
  235. data/lib/temporalio/connection/retry_config.rb +44 -0
  236. data/lib/temporalio/connection/service.rb +20 -0
  237. data/lib/temporalio/connection/test_service.rb +92 -0
  238. data/lib/temporalio/connection/tls_options.rb +51 -0
  239. data/lib/temporalio/connection/workflow_service.rb +731 -0
  240. data/lib/temporalio/connection.rb +86 -0
  241. data/lib/{temporal → temporalio}/data_converter.rb +76 -35
  242. data/lib/{temporal → temporalio}/error/failure.rb +6 -6
  243. data/lib/{temporal → temporalio}/error/workflow_failure.rb +4 -2
  244. data/lib/{temporal → temporalio}/errors.rb +19 -1
  245. data/lib/{temporal → temporalio}/failure_converter/base.rb +5 -5
  246. data/lib/{temporal → temporalio}/failure_converter/basic.rb +58 -52
  247. data/lib/temporalio/failure_converter.rb +7 -0
  248. data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
  249. data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
  250. data/lib/{temporal → temporalio}/interceptor/chain.rb +7 -6
  251. data/lib/{temporal → temporalio}/interceptor/client.rb +27 -2
  252. data/lib/temporalio/interceptor.rb +22 -0
  253. data/lib/{temporal → temporalio}/payload_codec/base.rb +5 -5
  254. data/lib/{temporal → temporalio}/payload_converter/base.rb +3 -3
  255. data/lib/{temporal → temporalio}/payload_converter/bytes.rb +4 -3
  256. data/lib/{temporal → temporalio}/payload_converter/composite.rb +7 -5
  257. data/lib/{temporal → temporalio}/payload_converter/encoding_base.rb +4 -4
  258. data/lib/{temporal → temporalio}/payload_converter/json.rb +4 -3
  259. data/lib/{temporal → temporalio}/payload_converter/nil.rb +4 -3
  260. data/lib/temporalio/payload_converter.rb +14 -0
  261. data/lib/{temporal → temporalio}/retry_policy.rb +17 -7
  262. data/lib/{temporal → temporalio}/retry_state.rb +1 -1
  263. data/lib/temporalio/runtime.rb +25 -0
  264. data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
  265. data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
  266. data/lib/temporalio/testing/workflow_environment.rb +112 -0
  267. data/lib/temporalio/testing.rb +175 -0
  268. data/lib/{temporal → temporalio}/timeout_type.rb +2 -2
  269. data/lib/temporalio/version.rb +3 -0
  270. data/lib/temporalio/worker/activity_runner.rb +114 -0
  271. data/lib/temporalio/worker/activity_worker.rb +164 -0
  272. data/lib/temporalio/worker/reactor.rb +46 -0
  273. data/lib/temporalio/worker/runner.rb +63 -0
  274. data/lib/temporalio/worker/sync_worker.rb +124 -0
  275. data/lib/temporalio/worker/thread_pool_executor.rb +51 -0
  276. data/lib/temporalio/worker.rb +204 -0
  277. data/lib/temporalio/workflow/async.rb +46 -0
  278. data/lib/{temporal → temporalio}/workflow/execution_info.rb +4 -4
  279. data/lib/{temporal → temporalio}/workflow/execution_status.rb +1 -1
  280. data/lib/temporalio/workflow/future.rb +138 -0
  281. data/lib/{temporal → temporalio}/workflow/id_reuse_policy.rb +6 -6
  282. data/lib/temporalio/workflow/info.rb +76 -0
  283. data/lib/{temporal → temporalio}/workflow/query_reject_condition.rb +5 -5
  284. data/lib/temporalio.rb +12 -3
  285. data/temporalio.gemspec +11 -6
  286. metadata +137 -64
  287. data/bridge/sdk-core/Cargo.lock +0 -2606
  288. data/bridge/sdk-core/bridge-ffi/Cargo.toml +0 -24
  289. data/bridge/sdk-core/bridge-ffi/LICENSE.txt +0 -23
  290. data/bridge/sdk-core/bridge-ffi/build.rs +0 -25
  291. data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -249
  292. data/bridge/sdk-core/bridge-ffi/src/lib.rs +0 -825
  293. data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +0 -211
  294. data/bridge/sdk-core/core/src/log_export.rs +0 -62
  295. data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +0 -127
  296. data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +0 -71
  297. data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +0 -83
  298. data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
  299. data/bridge/sdk-core/sdk/src/conversions.rs +0 -8
  300. data/lib/bridge.so +0 -0
  301. data/lib/gen/temporal/api/cluster/v1/message_pb.rb +0 -67
  302. data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +0 -26
  303. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +0 -222
  304. data/lib/temporal/bridge.rb +0 -14
  305. data/lib/temporal/connection.rb +0 -736
  306. data/lib/temporal/failure_converter.rb +0 -8
  307. data/lib/temporal/payload_converter.rb +0 -14
  308. data/lib/temporal/runtime.rb +0 -22
  309. data/lib/temporal/version.rb +0 -3
  310. data/lib/temporal.rb +0 -8
@@ -0,0 +1,153 @@
1
+ use crate::runtime::Runtime;
2
+ use std::sync::Arc;
3
+ use temporal_sdk_core::ephemeral_server;
4
+ use thiserror::Error;
5
+ use tokio::runtime::Runtime as TokioRuntime;
6
+
7
+ #[derive(Error, Debug)]
8
+ pub enum TestServerError {
9
+ #[error(transparent)]
10
+ ConfigError(#[from] ephemeral_server::TestServerConfigBuilderError),
11
+
12
+ #[error(transparent)]
13
+ TemporaliteConfigError(#[from] ephemeral_server::TemporaliteConfigBuilderError),
14
+
15
+ #[error(transparent)]
16
+ Unknown(#[from] anyhow::Error),
17
+ }
18
+
19
+ pub struct TestServer {
20
+ core_server: ephemeral_server::EphemeralServer,
21
+ tokio_runtime: Arc<TokioRuntime>,
22
+ }
23
+
24
+ pub struct TestServerConfig {
25
+ pub existing_path: Option<String>,
26
+ pub sdk_name: String,
27
+ pub sdk_version: String,
28
+ pub download_version: String,
29
+ pub download_dir: Option<String>,
30
+ pub port: Option<u16>,
31
+ pub extra_args: Vec<String>,
32
+ }
33
+
34
+ pub struct TemporaliteConfig {
35
+ pub existing_path: Option<String>,
36
+ pub sdk_name: String,
37
+ pub sdk_version: String,
38
+ pub download_version: String,
39
+ pub download_dir: Option<String>,
40
+ pub namespace: String,
41
+ pub ip: String,
42
+ pub port: Option<u16>,
43
+ pub database_filename: Option<String>,
44
+ pub ui: bool,
45
+ pub log_format: String,
46
+ pub log_level: String,
47
+ pub extra_args: Vec<String>,
48
+ }
49
+
50
+ impl TestServer {
51
+ pub fn start(runtime: &Runtime, config: TestServerConfig) -> Result<TestServer, TestServerError> {
52
+ let config: ephemeral_server::TestServerConfig = config.try_into()?;
53
+ let core_server = runtime.tokio_runtime.block_on(config.start_server())?;
54
+
55
+ Ok(TestServer {
56
+ core_server,
57
+ tokio_runtime: runtime.tokio_runtime.clone(),
58
+ })
59
+ }
60
+
61
+ pub fn start_temporalite(runtime: &Runtime, config: TemporaliteConfig) -> Result<TestServer, TestServerError> {
62
+ let config: ephemeral_server::TemporaliteConfig = config.try_into()?;
63
+ let core_server = runtime.tokio_runtime.block_on(config.start_server())?;
64
+
65
+ // TODO: This needs further investigation, but for some reason without a short pause here
66
+ // the shutdown called immediately after will end up waiting for 10 seconds before the
67
+ // process dies. This might be related to Core's EphemeralServer not waiting long
68
+ // enough for the Temporalite to start before returning back the control to the SDK.
69
+ // Reported here — https://github.com/temporalio/cli/issues/79.
70
+ std::thread::sleep(std::time::Duration::from_millis(150));
71
+
72
+ Ok(TestServer {
73
+ core_server,
74
+ tokio_runtime: runtime.tokio_runtime.clone(),
75
+ })
76
+ }
77
+
78
+ pub fn has_test_service(&self) -> bool {
79
+ self.core_server.has_test_service
80
+ }
81
+
82
+ pub fn target(&self) -> String {
83
+ self.core_server.target.clone()
84
+ }
85
+
86
+ pub fn shutdown(&mut self) -> Result<(), TestServerError> {
87
+ self.tokio_runtime.block_on(self.core_server.shutdown())?;
88
+
89
+ Ok(())
90
+ }
91
+ }
92
+
93
+ fn ephemeral_exe(
94
+ existing_path: Option<String>,
95
+ sdk_name: String,
96
+ sdk_version: String,
97
+ download_version: String,
98
+ download_dir: Option<String>
99
+ ) -> ephemeral_server::EphemeralExe {
100
+ if let Some(path) = existing_path {
101
+ ephemeral_server::EphemeralExe::ExistingPath(path)
102
+ } else {
103
+ let version =
104
+ if download_version == "default" {
105
+ ephemeral_server::EphemeralExeVersion::SDKDefault { sdk_name, sdk_version }
106
+ } else {
107
+ ephemeral_server::EphemeralExeVersion::Fixed(download_version)
108
+ };
109
+
110
+ ephemeral_server::EphemeralExe::CachedDownload { version, dest_dir: download_dir }
111
+ }
112
+ }
113
+
114
+ impl TryFrom<TestServerConfig> for ephemeral_server::TestServerConfig {
115
+ type Error = ephemeral_server::TestServerConfigBuilderError;
116
+
117
+ fn try_from(config: TestServerConfig) -> Result<Self, Self::Error> {
118
+ ephemeral_server::TestServerConfigBuilder::default()
119
+ .exe(ephemeral_exe(
120
+ config.existing_path,
121
+ config.sdk_name,
122
+ config.sdk_version,
123
+ config.download_version,
124
+ config.download_dir
125
+ ))
126
+ .port(config.port)
127
+ .extra_args(config.extra_args)
128
+ .build()
129
+ }
130
+ }
131
+
132
+ impl TryFrom<TemporaliteConfig> for ephemeral_server::TemporaliteConfig {
133
+ type Error = ephemeral_server::TemporaliteConfigBuilderError;
134
+
135
+ fn try_from(config: TemporaliteConfig) -> Result<Self, Self::Error> {
136
+ ephemeral_server::TemporaliteConfigBuilder::default()
137
+ .exe(ephemeral_exe(
138
+ config.existing_path,
139
+ config.sdk_name,
140
+ config.sdk_version,
141
+ config.download_version,
142
+ config.download_dir
143
+ ))
144
+ .namespace(config.namespace)
145
+ .ip(config.ip)
146
+ .port(config.port)
147
+ .db_filename(config.database_filename)
148
+ .ui(config.ui)
149
+ .log((config.log_format, config.log_level))
150
+ .extra_args(config.extra_args)
151
+ .build()
152
+ }
153
+ }
data/bridge/src/worker.rs CHANGED
@@ -1,57 +1,84 @@
1
1
  use crate::connection::Client;
2
2
  use crate::runtime::{Callback, Command, Runtime};
3
3
  use prost::Message;
4
- use std::sync::Arc;
5
4
  use std::sync::mpsc::Sender;
6
- use temporal_sdk_core::api::{Worker as WorkerTrait};
5
+ use std::sync::Arc;
6
+ use temporal_sdk_core::api::Worker as WorkerTrait;
7
+ use temporal_sdk_core_api::errors::{PollActivityError, PollWfError};
7
8
  use temporal_sdk_core_api::worker::{WorkerConfigBuilder, WorkerConfigBuilderError};
9
+ use temporal_sdk_core_protos::coresdk::workflow_completion::WorkflowActivationCompletion;
10
+ use temporal_sdk_core_protos::coresdk::{ActivityHeartbeat, ActivityTaskCompletion};
8
11
  use thiserror::Error;
9
- use tokio::runtime::{Runtime as TokioRuntime};
12
+ use tokio::runtime::Runtime as TokioRuntime;
10
13
 
11
14
  #[derive(Error, Debug)]
12
15
  pub enum WorkerError {
13
16
  #[error(transparent)]
14
17
  EncodeError(#[from] prost::EncodeError),
15
18
 
19
+ #[error(transparent)]
20
+ DecodeError(#[from] prost::DecodeError),
21
+
16
22
  #[error(transparent)]
17
23
  InvalidWorkerOptions(#[from] WorkerConfigBuilderError),
18
24
 
19
25
  #[error(transparent)]
20
26
  UnableToPollActivityTask(#[from] temporal_sdk_core::api::errors::PollActivityError),
21
27
 
28
+ #[error(transparent)]
29
+ UnableToPollWorkflowActivation(#[from] temporal_sdk_core::api::errors::PollWfError),
30
+
31
+ #[error(transparent)]
32
+ UnableToCompleteActivityTask(#[from] temporal_sdk_core::api::errors::CompleteActivityError),
33
+
34
+ #[error(transparent)]
35
+ UnableToCompleteWorkflowActivation(#[from] temporal_sdk_core::api::errors::CompleteWfError),
36
+
22
37
  #[error("Unable to send a request. Channel is closed")]
23
38
  ChannelClosed(),
39
+
40
+ #[error("Worker has already been shutdown")]
41
+ WorkerHasBeenShutdown(),
42
+
43
+ #[error("Unexpected error: {0}")]
44
+ UnexpectedError(String),
45
+
46
+ #[error("Core worker is shutting down")]
47
+ Shutdown(),
24
48
  }
25
49
 
26
50
  pub type WorkerResult = Result<Vec<u8>, WorkerError>;
27
51
 
28
52
  pub struct Worker {
29
- core_worker: Arc<temporal_sdk_core::Worker>,
53
+ core_worker: Option<Arc<temporal_sdk_core::Worker>>,
30
54
  tokio_runtime: Arc<TokioRuntime>,
31
55
  callback_tx: Sender<Command>,
32
56
  }
33
57
 
34
58
  impl Worker {
35
59
  // TODO: Extend this to include full worker config
36
- pub fn new(runtime: &Runtime, client: &Client, namespace: &str, task_queue: &str) -> Result<Worker, WorkerError> {
60
+ pub fn new(runtime: &Runtime, client: &Client, namespace: &str, task_queue: &str, max_cached_workflows: u32, no_remote_activity: bool) -> Result<Worker, WorkerError> {
37
61
  let config = WorkerConfigBuilder::default()
38
62
  .namespace(namespace)
39
63
  .task_queue(task_queue)
64
+ .worker_build_id("test-worker-build") // TODO: replace this with an actual build id
65
+ .max_cached_workflows(usize::try_from(max_cached_workflows).unwrap())
66
+ .no_remote_activities(no_remote_activity)
40
67
  .build()?;
41
68
 
42
69
  let core_worker = runtime.tokio_runtime.block_on(async move {
43
- temporal_sdk_core::init_worker(config, client.clone())
44
- });
70
+ temporal_sdk_core::init_worker(&runtime.core_runtime, config, client.clone())
71
+ }).expect("Failed to initialize Core Worker");
45
72
 
46
73
  Ok(Worker {
47
- core_worker: Arc::new(core_worker),
74
+ core_worker: Some(Arc::new(core_worker)),
48
75
  tokio_runtime: runtime.tokio_runtime.clone(),
49
76
  callback_tx: runtime.callback_tx.clone(),
50
77
  })
51
78
  }
52
79
 
53
80
  pub fn poll_activity_task<F>(&self, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
54
- let core_worker = self.core_worker.clone();
81
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
55
82
  let callback_tx = self.callback_tx.clone();
56
83
 
57
84
  self.tokio_runtime.spawn(async move {
@@ -62,6 +89,7 @@ impl Worker {
62
89
  let bytes = task.encode_to_vec();
63
90
  Box::new(move || callback(Ok(bytes)))
64
91
  },
92
+ Err(PollActivityError::ShutDown) => Box::new(move || callback(Err(WorkerError::Shutdown()))),
65
93
  Err(e) => Box::new(move || callback(Err(WorkerError::UnableToPollActivityTask(e))))
66
94
  };
67
95
 
@@ -70,4 +98,100 @@ impl Worker {
70
98
 
71
99
  Ok(())
72
100
  }
101
+
102
+ pub fn complete_activity_task<F>(&self, bytes: Vec<u8>, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
103
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
104
+ let callback_tx = self.callback_tx.clone();
105
+ let proto = ActivityTaskCompletion::decode(&*bytes)?;
106
+
107
+ self.tokio_runtime.spawn(async move {
108
+ let result = core_worker.complete_activity_task(proto).await;
109
+
110
+ let callback: Callback = match result {
111
+ Ok(()) => Box::new(move || callback(Ok(vec!()))),
112
+ Err(e) => Box::new(move || callback(Err(WorkerError::UnableToCompleteActivityTask(e))))
113
+ };
114
+
115
+ callback_tx.send(Command::RunCallback(callback)).expect("Unable to send a callback");
116
+ });
117
+
118
+ Ok(())
119
+ }
120
+
121
+ pub fn record_activity_heartbeat(&self, bytes: Vec<u8>) -> Result<(), WorkerError> {
122
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
123
+ let proto = ActivityHeartbeat::decode(&*bytes)?;
124
+
125
+ core_worker.record_activity_heartbeat(proto);
126
+
127
+ Ok(())
128
+ }
129
+
130
+ pub fn poll_workflow_activation<F>(&self, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
131
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
132
+ let callback_tx = self.callback_tx.clone();
133
+
134
+ self.tokio_runtime.spawn(async move {
135
+ let result = core_worker.poll_workflow_activation().await;
136
+
137
+ let callback: Callback = match result {
138
+ Ok(task) => {
139
+ let bytes = task.encode_to_vec();
140
+ Box::new(move || callback(Ok(bytes)))
141
+ },
142
+ Err(PollWfError::ShutDown) => Box::new(move || callback(Err(WorkerError::Shutdown()))),
143
+ Err(e) => Box::new(move || callback(Err(WorkerError::UnableToPollWorkflowActivation(e))))
144
+ };
145
+
146
+ callback_tx.send(Command::RunCallback(callback)).expect("Unable to send a callback");
147
+ });
148
+
149
+ Ok(())
150
+ }
151
+
152
+ pub fn complete_workflow_activation<F>(&self, bytes: Vec<u8>, callback: F) -> Result<(), WorkerError> where F: FnOnce(WorkerResult) + Send + 'static {
153
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
154
+ let callback_tx = self.callback_tx.clone();
155
+ let proto = WorkflowActivationCompletion::decode(&*bytes)?;
156
+
157
+ self.tokio_runtime.spawn(async move {
158
+ let result = core_worker.complete_workflow_activation(proto).await;
159
+
160
+ let callback: Callback = match result {
161
+ Ok(()) => Box::new(move || callback(Ok(vec!()))),
162
+ Err(e) => Box::new(move || callback(Err(WorkerError::UnableToCompleteWorkflowActivation(e))))
163
+ };
164
+
165
+ callback_tx.send(Command::RunCallback(callback)).expect("Unable to send a callback");
166
+ });
167
+
168
+ Ok(())
169
+ }
170
+
171
+ pub fn initiate_shutdown(&self) -> Result<(), WorkerError> {
172
+ let core_worker = Arc::clone(self.core_worker.as_ref().ok_or(WorkerError::WorkerHasBeenShutdown())?);
173
+
174
+ core_worker.initiate_shutdown();
175
+
176
+ Ok(())
177
+ }
178
+
179
+ pub fn finalize_shutdown(&mut self) -> Result<(), WorkerError> {
180
+ // Take the worker out of the option and leave None
181
+ let core_worker = self.core_worker.take().ok_or(WorkerError::WorkerHasBeenShutdown())?;
182
+
183
+ // By design, there should be no more task using the worker by the time the Ruby code calls finalize_shutdown.
184
+ // This should therefore be the very last reference remaining to the worker. This is a condition for try_unwrap to work.
185
+ let core_worker = Arc::try_unwrap(core_worker).map_err(|arc| {
186
+ WorkerError::UnexpectedError(format!(
187
+ "Can't finalize worker's shutdown because there are still active references to it (expected exactly 1 reference, but got {})",
188
+ Arc::strong_count(&arc)
189
+ ))
190
+ })?;
191
+
192
+ self.tokio_runtime.block_on(async move {
193
+ core_worker.finalize_shutdown().await;
194
+ Ok(())
195
+ })
196
+ }
73
197
  }
@@ -17,9 +17,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
17
17
  optional :close_time, :message, 4, "google.protobuf.Timestamp"
18
18
  end
19
19
  add_message "temporal.api.batch.v1.BatchOperationTermination" do
20
- optional :reason, :string, 1
21
- optional :details, :message, 2, "temporal.api.common.v1.Payloads"
22
- optional :identity, :string, 3
20
+ optional :details, :message, 1, "temporal.api.common.v1.Payloads"
21
+ optional :identity, :string, 2
23
22
  end
24
23
  add_message "temporal.api.batch.v1.BatchOperationSignal" do
25
24
  optional :signal, :string, 1
@@ -28,13 +27,15 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
28
27
  optional :identity, :string, 4
29
28
  end
30
29
  add_message "temporal.api.batch.v1.BatchOperationCancellation" do
31
- optional :reason, :string, 1
32
- optional :identity, :string, 2
30
+ optional :identity, :string, 1
31
+ end
32
+ add_message "temporal.api.batch.v1.BatchOperationDeletion" do
33
+ optional :identity, :string, 1
33
34
  end
34
35
  end
35
36
  end
36
37
 
37
- module Temporal
38
+ module Temporalio
38
39
  module Api
39
40
  module Batch
40
41
  module V1
@@ -42,6 +43,7 @@ module Temporal
42
43
  BatchOperationTermination = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.batch.v1.BatchOperationTermination").msgclass
43
44
  BatchOperationSignal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.batch.v1.BatchOperationSignal").msgclass
44
45
  BatchOperationCancellation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.batch.v1.BatchOperationCancellation").msgclass
46
+ BatchOperationDeletion = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.batch.v1.BatchOperationDeletion").msgclass
45
47
  end
46
48
  end
47
49
  end
@@ -7,7 +7,6 @@ require 'google/protobuf/duration_pb'
7
7
  require 'dependencies/gogoproto/gogo_pb'
8
8
  require 'temporal/api/enums/v1/workflow_pb'
9
9
  require 'temporal/api/enums/v1/command_type_pb'
10
- require 'temporal/api/enums/v1/update_pb'
11
10
  require 'temporal/api/common/v1/message_pb'
12
11
  require 'temporal/api/failure/v1/message_pb'
13
12
  require 'temporal/api/taskqueue/v1/message_pb'
@@ -66,6 +65,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
66
65
  add_message "temporal.api.command.v1.UpsertWorkflowSearchAttributesCommandAttributes" do
67
66
  optional :search_attributes, :message, 1, "temporal.api.common.v1.SearchAttributes"
68
67
  end
68
+ add_message "temporal.api.command.v1.ModifyWorkflowPropertiesCommandAttributes" do
69
+ optional :upserted_memo, :message, 1, "temporal.api.common.v1.Memo"
70
+ end
69
71
  add_message "temporal.api.command.v1.RecordMarkerCommandAttributes" do
70
72
  optional :marker_name, :string, 1
71
73
  map :details, :string, :message, 2, "temporal.api.common.v1.Payloads"
@@ -106,16 +108,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
106
108
  optional :memo, :message, 15, "temporal.api.common.v1.Memo"
107
109
  optional :search_attributes, :message, 16, "temporal.api.common.v1.SearchAttributes"
108
110
  end
109
- add_message "temporal.api.command.v1.AcceptWorkflowUpdateCommandAttributes" do
110
- optional :update_id, :string, 1
111
- end
112
- add_message "temporal.api.command.v1.CompleteWorkflowUpdateCommandAttributes" do
113
- optional :update_id, :string, 1
114
- optional :durability_preference, :enum, 2, "temporal.api.enums.v1.WorkflowUpdateDurabilityPreference"
115
- oneof :result do
116
- optional :success, :message, 3, "temporal.api.common.v1.Payloads"
117
- optional :failure, :message, 4, "temporal.api.failure.v1.Failure"
118
- end
111
+ add_message "temporal.api.command.v1.ProtocolMessageCommandAttributes" do
112
+ optional :message_id, :string, 1
119
113
  end
120
114
  add_message "temporal.api.command.v1.Command" do
121
115
  optional :command_type, :enum, 1, "temporal.api.enums.v1.CommandType"
@@ -133,14 +127,14 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
133
127
  optional :start_child_workflow_execution_command_attributes, :message, 12, "temporal.api.command.v1.StartChildWorkflowExecutionCommandAttributes"
134
128
  optional :signal_external_workflow_execution_command_attributes, :message, 13, "temporal.api.command.v1.SignalExternalWorkflowExecutionCommandAttributes"
135
129
  optional :upsert_workflow_search_attributes_command_attributes, :message, 14, "temporal.api.command.v1.UpsertWorkflowSearchAttributesCommandAttributes"
136
- optional :accept_workflow_update_command_attributes, :message, 15, "temporal.api.command.v1.AcceptWorkflowUpdateCommandAttributes"
137
- optional :complete_workflow_update_command_attributes, :message, 16, "temporal.api.command.v1.CompleteWorkflowUpdateCommandAttributes"
130
+ optional :protocol_message_command_attributes, :message, 15, "temporal.api.command.v1.ProtocolMessageCommandAttributes"
131
+ optional :modify_workflow_properties_command_attributes, :message, 17, "temporal.api.command.v1.ModifyWorkflowPropertiesCommandAttributes"
138
132
  end
139
133
  end
140
134
  end
141
135
  end
142
136
 
143
- module Temporal
137
+ module Temporalio
144
138
  module Api
145
139
  module Command
146
140
  module V1
@@ -154,11 +148,11 @@ module Temporal
154
148
  RequestCancelExternalWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.RequestCancelExternalWorkflowExecutionCommandAttributes").msgclass
155
149
  SignalExternalWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.SignalExternalWorkflowExecutionCommandAttributes").msgclass
156
150
  UpsertWorkflowSearchAttributesCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.UpsertWorkflowSearchAttributesCommandAttributes").msgclass
151
+ ModifyWorkflowPropertiesCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.ModifyWorkflowPropertiesCommandAttributes").msgclass
157
152
  RecordMarkerCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.RecordMarkerCommandAttributes").msgclass
158
153
  ContinueAsNewWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.ContinueAsNewWorkflowExecutionCommandAttributes").msgclass
159
154
  StartChildWorkflowExecutionCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.StartChildWorkflowExecutionCommandAttributes").msgclass
160
- AcceptWorkflowUpdateCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.AcceptWorkflowUpdateCommandAttributes").msgclass
161
- CompleteWorkflowUpdateCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.CompleteWorkflowUpdateCommandAttributes").msgclass
155
+ ProtocolMessageCommandAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.ProtocolMessageCommandAttributes").msgclass
162
156
  Command = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.command.v1.Command").msgclass
163
157
  end
164
158
  end
@@ -46,10 +46,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
46
46
  optional :maximum_attempts, :int32, 4
47
47
  repeated :non_retryable_error_types, :string, 5
48
48
  end
49
+ add_message "temporal.api.common.v1.MeteringMetadata" do
50
+ optional :nonfirst_local_activity_execution_attempts, :uint32, 13
51
+ end
49
52
  end
50
53
  end
51
54
 
52
- module Temporal
55
+ module Temporalio
53
56
  module Api
54
57
  module Common
55
58
  module V1
@@ -63,6 +66,7 @@ module Temporal
63
66
  WorkflowType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.WorkflowType").msgclass
64
67
  ActivityType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.ActivityType").msgclass
65
68
  RetryPolicy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.RetryPolicy").msgclass
69
+ MeteringMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("temporal.api.common.v1.MeteringMetadata").msgclass
66
70
  end
67
71
  end
68
72
  end
@@ -10,6 +10,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
10
10
  value :BATCH_OPERATION_TYPE_TERMINATE, 1
11
11
  value :BATCH_OPERATION_TYPE_CANCEL, 2
12
12
  value :BATCH_OPERATION_TYPE_SIGNAL, 3
13
+ value :BATCH_OPERATION_TYPE_DELETE, 4
13
14
  end
14
15
  add_enum "temporal.api.enums.v1.BatchOperationState" do
15
16
  value :BATCH_OPERATION_STATE_UNSPECIFIED, 0
@@ -20,7 +21,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
20
21
  end
21
22
  end
22
23
 
23
- module Temporal
24
+ module Temporalio
24
25
  module Api
25
26
  module Enums
26
27
  module V1
@@ -20,13 +20,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
20
20
  value :COMMAND_TYPE_START_CHILD_WORKFLOW_EXECUTION, 11
21
21
  value :COMMAND_TYPE_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION, 12
22
22
  value :COMMAND_TYPE_UPSERT_WORKFLOW_SEARCH_ATTRIBUTES, 13
23
- value :COMMAND_TYPE_ACCEPT_WORKFLOW_UPDATE, 14
24
- value :COMMAND_TYPE_COMPLETE_WORKFLOW_UPDATE, 15
23
+ value :COMMAND_TYPE_PROTOCOL_MESSAGE, 14
24
+ value :COMMAND_TYPE_MODIFY_WORKFLOW_PROPERTIES, 16
25
25
  end
26
26
  end
27
27
  end
28
28
 
29
- module Temporal
29
+ module Temporalio
30
30
  module Api
31
31
  module Enums
32
32
  module V1
@@ -18,6 +18,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
18
18
  value :INDEXED_VALUE_TYPE_DOUBLE, 4
19
19
  value :INDEXED_VALUE_TYPE_BOOL, 5
20
20
  value :INDEXED_VALUE_TYPE_DATETIME, 6
21
+ value :INDEXED_VALUE_TYPE_KEYWORD_LIST, 7
21
22
  end
22
23
  add_enum "temporal.api.enums.v1.Severity" do
23
24
  value :SEVERITY_UNSPECIFIED, 0
@@ -28,7 +29,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
28
29
  end
29
30
  end
30
31
 
31
- module Temporal
32
+ module Temporalio
32
33
  module Api
33
34
  module Enums
34
35
  module V1
@@ -47,16 +47,17 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
47
47
  value :EVENT_TYPE_SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED, 38
48
48
  value :EVENT_TYPE_EXTERNAL_WORKFLOW_EXECUTION_SIGNALED, 39
49
49
  value :EVENT_TYPE_UPSERT_WORKFLOW_SEARCH_ATTRIBUTES, 40
50
- value :EVENT_TYPE_WORKFLOW_UPDATE_REQUESTED, 41
51
- value :EVENT_TYPE_WORKFLOW_UPDATE_ACCEPTED, 42
52
- value :EVENT_TYPE_WORKFLOW_UPDATE_COMPLETED, 43
50
+ value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_ACCEPTED, 41
51
+ value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_REJECTED, 42
52
+ value :EVENT_TYPE_WORKFLOW_EXECUTION_UPDATE_COMPLETED, 43
53
53
  value :EVENT_TYPE_WORKFLOW_PROPERTIES_MODIFIED_EXTERNALLY, 44
54
54
  value :EVENT_TYPE_ACTIVITY_PROPERTIES_MODIFIED_EXTERNALLY, 45
55
+ value :EVENT_TYPE_WORKFLOW_PROPERTIES_MODIFIED, 46
55
56
  end
56
57
  end
57
58
  end
58
59
 
59
- module Temporal
60
+ module Temporalio
60
61
  module Api
61
62
  module Enums
62
63
  module V1
@@ -31,6 +31,13 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
31
31
  value :WORKFLOW_TASK_FAILED_CAUSE_SCHEDULE_ACTIVITY_DUPLICATE_ID, 22
32
32
  value :WORKFLOW_TASK_FAILED_CAUSE_BAD_SEARCH_ATTRIBUTES, 23
33
33
  value :WORKFLOW_TASK_FAILED_CAUSE_NON_DETERMINISTIC_ERROR, 24
34
+ value :WORKFLOW_TASK_FAILED_CAUSE_BAD_MODIFY_WORKFLOW_PROPERTIES_ATTRIBUTES, 25
35
+ value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_CHILD_WORKFLOWS_LIMIT_EXCEEDED, 26
36
+ value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_ACTIVITIES_LIMIT_EXCEEDED, 27
37
+ value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_SIGNALS_LIMIT_EXCEEDED, 28
38
+ value :WORKFLOW_TASK_FAILED_CAUSE_PENDING_REQUEST_CANCEL_LIMIT_EXCEEDED, 29
39
+ value :WORKFLOW_TASK_FAILED_CAUSE_BAD_UPDATE_WORKFLOW_EXECUTION_MESSAGE, 30
40
+ value :WORKFLOW_TASK_FAILED_CAUSE_UNHANDLED_UPDATE, 31
34
41
  end
35
42
  add_enum "temporal.api.enums.v1.StartChildWorkflowExecutionFailedCause" do
36
43
  value :START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED, 0
@@ -52,11 +59,12 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
52
59
  value :RESOURCE_EXHAUSTED_CAUSE_RPS_LIMIT, 1
53
60
  value :RESOURCE_EXHAUSTED_CAUSE_CONCURRENT_LIMIT, 2
54
61
  value :RESOURCE_EXHAUSTED_CAUSE_SYSTEM_OVERLOADED, 3
62
+ value :RESOURCE_EXHAUSTED_CAUSE_PERSISTENCE_LIMIT, 4
55
63
  end
56
64
  end
57
65
  end
58
66
 
59
- module Temporal
67
+ module Temporalio
60
68
  module Api
61
69
  module Enums
62
70
  module V1
@@ -24,7 +24,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
24
24
  end
25
25
  end
26
26
 
27
- module Temporal
27
+ module Temporalio
28
28
  module Api
29
29
  module Enums
30
30
  module V1
@@ -19,7 +19,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
19
19
  end
20
20
  end
21
21
 
22
- module Temporal
22
+ module Temporalio
23
23
  module Api
24
24
  module Enums
25
25
  module V1
@@ -13,7 +13,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
13
13
  end
14
14
  end
15
15
 
16
- module Temporal
16
+ module Temporalio
17
17
  module Api
18
18
  module Enums
19
19
  module V1
@@ -17,7 +17,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
17
17
  end
18
18
  end
19
19
 
20
- module Temporal
20
+ module Temporalio
21
21
  module Api
22
22
  module Enums
23
23
  module V1
@@ -18,7 +18,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
18
18
  end
19
19
  end
20
20
 
21
- module Temporal
21
+ module Temporalio
22
22
  module Api
23
23
  module Enums
24
24
  module V1