temporalio 0.1.1 → 0.2.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 (585) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +4035 -0
  3. data/Cargo.toml +25 -0
  4. data/Gemfile +20 -0
  5. data/LICENSE +16 -15
  6. data/README.md +455 -195
  7. data/Rakefile +387 -0
  8. data/ext/Cargo.toml +25 -0
  9. data/lib/temporalio/activity/complete_async_error.rb +11 -0
  10. data/lib/temporalio/activity/context.rb +82 -77
  11. data/lib/temporalio/activity/definition.rb +77 -0
  12. data/lib/temporalio/activity/info.rb +42 -46
  13. data/lib/temporalio/activity.rb +49 -65
  14. data/lib/temporalio/api/batch/v1/message.rb +31 -0
  15. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +93 -0
  16. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
  17. data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
  18. data/lib/temporalio/api/cloud/identity/v1/message.rb +36 -0
  19. data/lib/temporalio/api/cloud/namespace/v1/message.rb +35 -0
  20. data/lib/temporalio/api/cloud/operation/v1/message.rb +27 -0
  21. data/lib/temporalio/api/cloud/region/v1/message.rb +23 -0
  22. data/lib/temporalio/api/command/v1/message.rb +46 -0
  23. data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
  24. data/lib/temporalio/api/common/v1/message.rb +41 -0
  25. data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
  26. data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
  27. data/lib/temporalio/api/enums/v1/common.rb +26 -0
  28. data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
  29. data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
  30. data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
  31. data/lib/temporalio/api/enums/v1/query.rb +22 -0
  32. data/lib/temporalio/api/enums/v1/reset.rb +23 -0
  33. data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
  34. data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
  35. data/lib/temporalio/api/enums/v1/update.rb +22 -0
  36. data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
  37. data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
  38. data/lib/temporalio/api/export/v1/message.rb +24 -0
  39. data/lib/temporalio/api/failure/v1/message.rb +35 -0
  40. data/lib/temporalio/api/filter/v1/message.rb +27 -0
  41. data/lib/temporalio/api/history/v1/message.rb +90 -0
  42. data/lib/temporalio/api/namespace/v1/message.rb +31 -0
  43. data/lib/temporalio/api/nexus/v1/message.rb +40 -0
  44. data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
  45. data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
  46. data/lib/temporalio/api/operatorservice.rb +3 -0
  47. data/lib/temporalio/api/protocol/v1/message.rb +23 -0
  48. data/lib/temporalio/api/query/v1/message.rb +27 -0
  49. data/lib/temporalio/api/replication/v1/message.rb +26 -0
  50. data/lib/temporalio/api/schedule/v1/message.rb +42 -0
  51. data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
  52. data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
  53. data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
  54. data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
  55. data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
  56. data/lib/temporalio/api/update/v1/message.rb +33 -0
  57. data/lib/temporalio/api/version/v1/message.rb +26 -0
  58. data/lib/temporalio/api/workflow/v1/message.rb +43 -0
  59. data/lib/temporalio/api/workflowservice/v1/request_response.rb +189 -0
  60. data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
  61. data/lib/temporalio/api/workflowservice.rb +3 -0
  62. data/lib/temporalio/api.rb +13 -0
  63. data/lib/temporalio/cancellation.rb +150 -0
  64. data/lib/temporalio/client/activity_id_reference.rb +32 -0
  65. data/lib/temporalio/client/async_activity_handle.rb +110 -0
  66. data/lib/temporalio/client/connection/cloud_service.rb +648 -0
  67. data/lib/temporalio/client/connection/operator_service.rb +249 -0
  68. data/lib/temporalio/client/connection/service.rb +41 -0
  69. data/lib/temporalio/client/connection/workflow_service.rb +1218 -0
  70. data/lib/temporalio/client/connection.rb +270 -0
  71. data/lib/temporalio/client/interceptor.rb +316 -0
  72. data/lib/temporalio/client/workflow_execution.rb +103 -0
  73. data/lib/temporalio/client/workflow_execution_count.rb +36 -0
  74. data/lib/temporalio/client/workflow_execution_status.rb +18 -0
  75. data/lib/temporalio/client/workflow_handle.rb +380 -177
  76. data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
  77. data/lib/temporalio/client/workflow_update_handle.rb +67 -0
  78. data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
  79. data/lib/temporalio/client.rb +366 -93
  80. data/lib/temporalio/common_enums.rb +24 -0
  81. data/lib/temporalio/converters/data_converter.rb +102 -0
  82. data/lib/temporalio/converters/failure_converter.rb +200 -0
  83. data/lib/temporalio/converters/payload_codec.rb +26 -0
  84. data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
  85. data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
  86. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
  87. data/lib/temporalio/converters/payload_converter/composite.rb +62 -0
  88. data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
  89. data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
  90. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
  91. data/lib/temporalio/converters/payload_converter.rb +73 -0
  92. data/lib/temporalio/converters.rb +9 -0
  93. data/lib/temporalio/error/failure.rb +119 -94
  94. data/lib/temporalio/error.rb +147 -0
  95. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
  96. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
  97. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
  98. data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
  99. data/lib/temporalio/internal/bridge/api/core_interface.rb +36 -0
  100. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
  101. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +52 -0
  102. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +54 -0
  103. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
  104. data/lib/temporalio/internal/bridge/api.rb +3 -0
  105. data/lib/temporalio/internal/bridge/client.rb +90 -0
  106. data/lib/temporalio/internal/bridge/runtime.rb +53 -0
  107. data/lib/temporalio/internal/bridge/testing.rb +46 -0
  108. data/lib/temporalio/internal/bridge/worker.rb +83 -0
  109. data/lib/temporalio/internal/bridge.rb +36 -0
  110. data/lib/temporalio/internal/client/implementation.rb +525 -0
  111. data/lib/temporalio/internal/proto_utils.rb +54 -0
  112. data/lib/temporalio/internal/worker/activity_worker.rb +345 -0
  113. data/lib/temporalio/internal/worker/multi_runner.rb +169 -0
  114. data/lib/temporalio/internal.rb +7 -0
  115. data/lib/temporalio/retry_policy.rb +39 -80
  116. data/lib/temporalio/runtime.rb +259 -13
  117. data/lib/temporalio/scoped_logger.rb +96 -0
  118. data/lib/temporalio/search_attributes.rb +300 -0
  119. data/lib/temporalio/testing/activity_environment.rb +132 -0
  120. data/lib/temporalio/testing/workflow_environment.rb +113 -88
  121. data/lib/temporalio/testing.rb +4 -169
  122. data/lib/temporalio/version.rb +3 -1
  123. data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
  124. data/lib/temporalio/worker/activity_executor/thread_pool.rb +254 -0
  125. data/lib/temporalio/worker/activity_executor.rb +55 -0
  126. data/lib/temporalio/worker/interceptor.rb +88 -0
  127. data/lib/temporalio/worker/tuner.rb +151 -0
  128. data/lib/temporalio/worker.rb +385 -163
  129. data/lib/temporalio/workflow_history.rb +22 -0
  130. data/lib/temporalio.rb +2 -7
  131. data/temporalio.gemspec +20 -39
  132. metadata +131 -712
  133. data/bridge/Cargo.lock +0 -2997
  134. data/bridge/Cargo.toml +0 -29
  135. data/bridge/sdk-core/ARCHITECTURE.md +0 -76
  136. data/bridge/sdk-core/Cargo.toml +0 -2
  137. data/bridge/sdk-core/LICENSE.txt +0 -23
  138. data/bridge/sdk-core/README.md +0 -117
  139. data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
  140. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
  141. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
  142. data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
  143. data/bridge/sdk-core/client/Cargo.toml +0 -40
  144. data/bridge/sdk-core/client/LICENSE.txt +0 -23
  145. data/bridge/sdk-core/client/src/lib.rs +0 -1462
  146. data/bridge/sdk-core/client/src/metrics.rs +0 -174
  147. data/bridge/sdk-core/client/src/raw.rs +0 -932
  148. data/bridge/sdk-core/client/src/retry.rs +0 -763
  149. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
  150. data/bridge/sdk-core/core/Cargo.toml +0 -129
  151. data/bridge/sdk-core/core/LICENSE.txt +0 -23
  152. data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
  153. data/bridge/sdk-core/core/src/abstractions.rs +0 -355
  154. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
  155. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
  156. data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
  157. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
  158. data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
  159. data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
  160. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
  161. data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
  162. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
  163. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
  164. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
  165. data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
  166. data/bridge/sdk-core/core/src/lib.rs +0 -289
  167. data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
  168. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
  169. data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
  170. data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
  171. data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
  172. data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
  173. data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
  174. data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
  175. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
  176. data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
  177. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
  178. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
  179. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
  180. data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
  181. data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
  182. data/bridge/sdk-core/core/src/worker/client.rs +0 -389
  183. data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
  184. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
  185. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
  186. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
  187. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
  188. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
  189. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
  190. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
  191. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
  192. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
  193. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
  194. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
  195. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
  196. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
  197. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
  198. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
  199. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
  200. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
  201. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
  202. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
  203. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
  204. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
  205. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
  206. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
  207. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
  208. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
  209. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
  210. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
  211. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
  212. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
  213. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
  214. data/bridge/sdk-core/core-api/Cargo.toml +0 -33
  215. data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
  216. data/bridge/sdk-core/core-api/src/errors.rs +0 -62
  217. data/bridge/sdk-core/core-api/src/lib.rs +0 -113
  218. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
  219. data/bridge/sdk-core/core-api/src/worker.rs +0 -161
  220. data/bridge/sdk-core/etc/deps.svg +0 -162
  221. data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
  222. data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
  223. data/bridge/sdk-core/etc/prometheus.yaml +0 -6
  224. data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
  225. data/bridge/sdk-core/fsm/Cargo.toml +0 -18
  226. data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
  227. data/bridge/sdk-core/fsm/README.md +0 -3
  228. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  229. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
  230. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
  231. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  232. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
  233. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  234. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
  235. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
  236. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
  237. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
  238. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
  239. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
  240. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
  241. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
  242. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
  243. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
  244. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  245. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
  246. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  247. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
  248. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  249. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  250. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
  251. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
  252. data/bridge/sdk-core/fsm/src/lib.rs +0 -2
  253. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  254. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  255. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  256. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  257. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  258. data/bridge/sdk-core/integ-with-otel.sh +0 -7
  259. data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
  260. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
  261. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
  262. data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
  263. data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
  264. data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
  265. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
  266. data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
  267. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
  268. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
  269. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
  270. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
  271. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
  272. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
  273. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
  274. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
  275. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
  276. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
  277. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
  278. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
  279. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
  280. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
  281. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
  282. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
  283. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
  284. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
  285. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
  286. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
  287. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
  288. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
  289. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
  290. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
  291. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
  292. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
  293. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
  294. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
  295. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
  296. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
  297. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
  298. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
  299. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
  300. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
  301. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
  302. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
  303. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
  304. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
  305. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
  306. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
  307. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
  308. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
  309. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
  310. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
  311. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
  312. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
  313. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
  314. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
  315. data/bridge/sdk-core/rustfmt.toml +0 -1
  316. data/bridge/sdk-core/sdk/Cargo.toml +0 -48
  317. data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
  318. data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
  319. data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
  320. data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
  321. data/bridge/sdk-core/sdk/src/lib.rs +0 -861
  322. data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
  323. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
  324. data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
  325. data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
  326. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
  327. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
  328. data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
  329. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
  330. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
  331. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
  332. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
  333. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
  334. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
  335. data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
  336. data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
  337. data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
  338. data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
  339. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
  340. data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
  341. data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
  342. data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
  343. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
  344. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
  345. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
  346. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
  347. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
  348. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
  349. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
  350. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
  351. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
  352. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
  353. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
  354. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
  355. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
  356. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
  357. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
  358. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
  359. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
  360. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
  361. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
  362. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
  363. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
  364. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
  365. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
  366. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
  367. data/bridge/sdk-core/tests/main.rs +0 -103
  368. data/bridge/sdk-core/tests/runner.rs +0 -132
  369. data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
  370. data/bridge/src/connection.rs +0 -202
  371. data/bridge/src/lib.rs +0 -494
  372. data/bridge/src/runtime.rs +0 -54
  373. data/bridge/src/test_server.rs +0 -153
  374. data/bridge/src/worker.rs +0 -197
  375. data/ext/Rakefile +0 -9
  376. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
  377. data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
  378. data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
  379. data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
  380. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
  381. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
  382. data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
  383. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
  384. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
  385. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
  386. data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
  387. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
  388. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
  389. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
  390. data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
  391. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
  392. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
  393. data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
  394. data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
  395. data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
  396. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
  397. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
  398. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
  399. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
  400. data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
  401. data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
  402. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
  403. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
  404. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
  405. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +0 -49
  406. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
  407. data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
  408. data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
  409. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
  410. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
  411. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
  412. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
  413. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
  414. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
  415. data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
  416. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
  417. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
  418. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
  419. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
  420. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
  421. data/lib/temporalio/bridge/connect_options.rb +0 -15
  422. data/lib/temporalio/bridge/error.rb +0 -8
  423. data/lib/temporalio/bridge/retry_config.rb +0 -24
  424. data/lib/temporalio/bridge/tls_options.rb +0 -19
  425. data/lib/temporalio/bridge.rb +0 -14
  426. data/lib/temporalio/client/implementation.rb +0 -340
  427. data/lib/temporalio/connection/retry_config.rb +0 -44
  428. data/lib/temporalio/connection/service.rb +0 -20
  429. data/lib/temporalio/connection/test_service.rb +0 -92
  430. data/lib/temporalio/connection/tls_options.rb +0 -51
  431. data/lib/temporalio/connection/workflow_service.rb +0 -731
  432. data/lib/temporalio/connection.rb +0 -86
  433. data/lib/temporalio/data_converter.rb +0 -191
  434. data/lib/temporalio/error/workflow_failure.rb +0 -19
  435. data/lib/temporalio/errors.rb +0 -40
  436. data/lib/temporalio/failure_converter/base.rb +0 -26
  437. data/lib/temporalio/failure_converter/basic.rb +0 -319
  438. data/lib/temporalio/failure_converter.rb +0 -7
  439. data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
  440. data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
  441. data/lib/temporalio/interceptor/chain.rb +0 -28
  442. data/lib/temporalio/interceptor/client.rb +0 -127
  443. data/lib/temporalio/interceptor.rb +0 -22
  444. data/lib/temporalio/payload_codec/base.rb +0 -32
  445. data/lib/temporalio/payload_converter/base.rb +0 -24
  446. data/lib/temporalio/payload_converter/bytes.rb +0 -27
  447. data/lib/temporalio/payload_converter/composite.rb +0 -49
  448. data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
  449. data/lib/temporalio/payload_converter/json.rb +0 -26
  450. data/lib/temporalio/payload_converter/nil.rb +0 -26
  451. data/lib/temporalio/payload_converter.rb +0 -14
  452. data/lib/temporalio/retry_state.rb +0 -35
  453. data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
  454. data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
  455. data/lib/temporalio/timeout_type.rb +0 -29
  456. data/lib/temporalio/worker/activity_runner.rb +0 -114
  457. data/lib/temporalio/worker/activity_worker.rb +0 -164
  458. data/lib/temporalio/worker/reactor.rb +0 -46
  459. data/lib/temporalio/worker/runner.rb +0 -63
  460. data/lib/temporalio/worker/sync_worker.rb +0 -124
  461. data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
  462. data/lib/temporalio/workflow/async.rb +0 -46
  463. data/lib/temporalio/workflow/execution_info.rb +0 -54
  464. data/lib/temporalio/workflow/execution_status.rb +0 -36
  465. data/lib/temporalio/workflow/future.rb +0 -138
  466. data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
  467. data/lib/temporalio/workflow/info.rb +0 -76
  468. data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
  469. data/lib/thermite_patch.rb +0 -33
  470. data/sig/async.rbs +0 -17
  471. data/sig/protobuf.rbs +0 -16
  472. data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
  473. data/sig/protos/google/protobuf/any.rbs +0 -157
  474. data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
  475. data/sig/protos/google/protobuf/duration.rbs +0 -114
  476. data/sig/protos/google/protobuf/empty.rbs +0 -36
  477. data/sig/protos/google/protobuf/timestamp.rbs +0 -145
  478. data/sig/protos/google/protobuf/wrappers.rbs +0 -358
  479. data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
  480. data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
  481. data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
  482. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
  483. data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
  484. data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
  485. data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
  486. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
  487. data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
  488. data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
  489. data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
  490. data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
  491. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
  492. data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
  493. data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
  494. data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
  495. data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
  496. data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
  497. data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
  498. data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
  499. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
  500. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
  501. data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
  502. data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
  503. data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
  504. data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
  505. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
  506. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
  507. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
  508. data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
  509. data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
  510. data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
  511. data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
  512. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
  513. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
  514. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
  515. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
  516. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
  517. data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
  518. data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
  519. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
  520. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
  521. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
  522. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
  523. data/sig/ruby.rbs +0 -12
  524. data/sig/temporalio/activity/context.rbs +0 -29
  525. data/sig/temporalio/activity/info.rbs +0 -43
  526. data/sig/temporalio/activity.rbs +0 -19
  527. data/sig/temporalio/bridge/connect_options.rbs +0 -19
  528. data/sig/temporalio/bridge/error.rbs +0 -8
  529. data/sig/temporalio/bridge/retry_config.rbs +0 -21
  530. data/sig/temporalio/bridge/tls_options.rbs +0 -17
  531. data/sig/temporalio/bridge.rbs +0 -71
  532. data/sig/temporalio/client/implementation.rbs +0 -38
  533. data/sig/temporalio/client/workflow_handle.rbs +0 -41
  534. data/sig/temporalio/client.rbs +0 -35
  535. data/sig/temporalio/connection/retry_config.rbs +0 -37
  536. data/sig/temporalio/connection/service.rbs +0 -14
  537. data/sig/temporalio/connection/test_service.rbs +0 -13
  538. data/sig/temporalio/connection/tls_options.rbs +0 -43
  539. data/sig/temporalio/connection/workflow_service.rbs +0 -48
  540. data/sig/temporalio/connection.rbs +0 -30
  541. data/sig/temporalio/data_converter.rbs +0 -35
  542. data/sig/temporalio/error/failure.rbs +0 -121
  543. data/sig/temporalio/error/workflow_failure.rbs +0 -9
  544. data/sig/temporalio/errors.rbs +0 -36
  545. data/sig/temporalio/failure_converter/base.rbs +0 -12
  546. data/sig/temporalio/failure_converter/basic.rbs +0 -86
  547. data/sig/temporalio/failure_converter.rbs +0 -5
  548. data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
  549. data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
  550. data/sig/temporalio/interceptor/chain.rbs +0 -24
  551. data/sig/temporalio/interceptor/client.rbs +0 -148
  552. data/sig/temporalio/interceptor.rbs +0 -6
  553. data/sig/temporalio/payload_codec/base.rbs +0 -12
  554. data/sig/temporalio/payload_converter/base.rbs +0 -12
  555. data/sig/temporalio/payload_converter/bytes.rbs +0 -9
  556. data/sig/temporalio/payload_converter/composite.rbs +0 -19
  557. data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
  558. data/sig/temporalio/payload_converter/json.rbs +0 -9
  559. data/sig/temporalio/payload_converter/nil.rbs +0 -9
  560. data/sig/temporalio/payload_converter.rbs +0 -5
  561. data/sig/temporalio/retry_policy.rbs +0 -25
  562. data/sig/temporalio/retry_state.rbs +0 -20
  563. data/sig/temporalio/runtime.rbs +0 -12
  564. data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
  565. data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
  566. data/sig/temporalio/testing/workflow_environment.rbs +0 -22
  567. data/sig/temporalio/testing.rbs +0 -35
  568. data/sig/temporalio/timeout_type.rbs +0 -15
  569. data/sig/temporalio/version.rbs +0 -3
  570. data/sig/temporalio/worker/activity_runner.rbs +0 -35
  571. data/sig/temporalio/worker/activity_worker.rbs +0 -44
  572. data/sig/temporalio/worker/reactor.rbs +0 -22
  573. data/sig/temporalio/worker/runner.rbs +0 -21
  574. data/sig/temporalio/worker/sync_worker.rbs +0 -23
  575. data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
  576. data/sig/temporalio/worker.rbs +0 -46
  577. data/sig/temporalio/workflow/async.rbs +0 -9
  578. data/sig/temporalio/workflow/execution_info.rbs +0 -55
  579. data/sig/temporalio/workflow/execution_status.rbs +0 -21
  580. data/sig/temporalio/workflow/future.rbs +0 -40
  581. data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
  582. data/sig/temporalio/workflow/info.rbs +0 -55
  583. data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
  584. data/sig/temporalio.rbs +0 -2
  585. data/sig/thermite_patch.rbs +0 -15
@@ -1,50 +0,0 @@
1
- use anyhow::anyhow;
2
- use bytes::BytesMut;
3
- use futures::{stream::BoxStream, SinkExt, StreamExt};
4
- use prost::bytes::Bytes;
5
- use std::path::Path;
6
- use temporal_sdk_core_api::worker::WorkerConfig;
7
- use tokio::{fs::File, sync::mpsc::UnboundedReceiver};
8
- use tokio_util::codec::{FramedRead, FramedWrite, LengthDelimitedCodec};
9
-
10
- pub struct WFStateReplayData {
11
- pub config: WorkerConfig,
12
- pub inputs: BoxStream<'static, Result<BytesMut, std::io::Error>>,
13
- }
14
-
15
- pub async fn stream_to_file(
16
- config: &WorkerConfig,
17
- mut rcv: UnboundedReceiver<Vec<u8>>,
18
- ) -> Result<(), anyhow::Error> {
19
- let file = File::create("wf_inputs").await?;
20
- let mut transport = FramedWrite::new(file, ldc());
21
- // First write the worker config, since things like cache size affect how many evictions there
22
- // will be, etc.
23
- transport.send(rmp_serde::to_vec(config)?.into()).await?;
24
- while let Some(v) = rcv.recv().await {
25
- transport.send(Bytes::from(v)).await?;
26
- }
27
- Ok(())
28
- }
29
-
30
- pub async fn read_from_file(path: impl AsRef<Path>) -> Result<WFStateReplayData, anyhow::Error> {
31
- let file = File::open(path).await?;
32
- let mut framed_read = FramedRead::new(file, ldc());
33
- // Deserialize the worker config first
34
- let config = framed_read
35
- .next()
36
- .await
37
- .ok_or_else(|| anyhow!("Replay data file is empty"))??;
38
- let config = rmp_serde::from_slice(config.as_ref())?;
39
-
40
- Ok(WFStateReplayData {
41
- config,
42
- inputs: framed_read.boxed(),
43
- })
44
- }
45
-
46
- fn ldc() -> LengthDelimitedCodec {
47
- LengthDelimitedCodec::builder()
48
- .length_field_type::<u16>()
49
- .new_codec()
50
- }
@@ -1,29 +0,0 @@
1
- use crate::prost_dur;
2
- use std::time::Duration;
3
- use temporal_sdk::{ActivityOptions, LocalActivityOptions, WfContext, WorkflowResult};
4
- use temporal_sdk_core_protos::{coresdk::AsJsonPayloadExt, temporal::api::common::v1::RetryPolicy};
5
-
6
- pub async fn la_problem_workflow(ctx: WfContext) -> WorkflowResult<()> {
7
- ctx.local_activity(LocalActivityOptions {
8
- activity_type: "delay".to_string(),
9
- input: "hi".as_json_payload().expect("serializes fine"),
10
- retry_policy: RetryPolicy {
11
- initial_interval: Some(prost_dur!(from_micros(15))),
12
- backoff_coefficient: 1_000.,
13
- maximum_interval: Some(prost_dur!(from_millis(1500))),
14
- maximum_attempts: 4,
15
- non_retryable_error_types: vec![],
16
- },
17
- timer_backoff_threshold: Some(Duration::from_secs(1)),
18
- ..Default::default()
19
- })
20
- .await;
21
- ctx.activity(ActivityOptions {
22
- activity_type: "delay".to_string(),
23
- start_to_close_timeout: Some(Duration::from_secs(20)),
24
- input: "hi!".as_json_payload().expect("serializes fine"),
25
- ..Default::default()
26
- })
27
- .await;
28
- Ok(().into())
29
- }
@@ -1,130 +0,0 @@
1
- use futures_util::{sink, stream::FuturesUnordered, FutureExt, StreamExt};
2
- use rand::{prelude::Distribution, rngs::SmallRng, Rng, SeedableRng};
3
- use std::{future, time::Duration};
4
- use temporal_client::{WfClientExt, WorkflowClientTrait, WorkflowOptions};
5
- use temporal_sdk::{ActContext, ActivityOptions, LocalActivityOptions, WfContext, WorkflowResult};
6
- use temporal_sdk_core_protos::coresdk::{AsJsonPayloadExt, FromJsonPayloadExt, IntoPayloadsExt};
7
- use temporal_sdk_core_test_utils::CoreWfStarter;
8
- use tokio_util::sync::CancellationToken;
9
-
10
- const FUZZY_SIG: &str = "fuzzy_sig";
11
-
12
- #[derive(serde::Serialize, serde::Deserialize, Copy, Clone)]
13
- enum FuzzyWfAction {
14
- Shutdown,
15
- DoAct,
16
- DoLocalAct,
17
- }
18
-
19
- struct FuzzyWfActionSampler;
20
- impl Distribution<FuzzyWfAction> for FuzzyWfActionSampler {
21
- fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> FuzzyWfAction {
22
- let v: u8 = rng.gen_range(1..=2);
23
- match v {
24
- 1 => FuzzyWfAction::DoAct,
25
- 2 => FuzzyWfAction::DoLocalAct,
26
- _ => unreachable!(),
27
- }
28
- }
29
- }
30
-
31
- async fn echo(_ctx: ActContext, echo_me: String) -> Result<String, anyhow::Error> {
32
- Ok(echo_me)
33
- }
34
-
35
- async fn fuzzy_wf_def(ctx: WfContext) -> WorkflowResult<()> {
36
- let sigchan = ctx
37
- .make_signal_channel(FUZZY_SIG)
38
- .map(|sd| FuzzyWfAction::from_json_payload(&sd.input[0]).expect("Can deserialize signal"));
39
- let done = CancellationToken::new();
40
- let done_setter = done.clone();
41
-
42
- sigchan
43
- .take_until(done.cancelled())
44
- .for_each_concurrent(None, |action| {
45
- let fut = match action {
46
- FuzzyWfAction::DoAct => ctx
47
- .activity(ActivityOptions {
48
- activity_type: "echo_activity".to_string(),
49
- start_to_close_timeout: Some(Duration::from_secs(5)),
50
- input: "hi!".as_json_payload().expect("serializes fine"),
51
- ..Default::default()
52
- })
53
- .map(|_| ())
54
- .boxed(),
55
- FuzzyWfAction::DoLocalAct => ctx
56
- .local_activity(LocalActivityOptions {
57
- activity_type: "echo_activity".to_string(),
58
- start_to_close_timeout: Some(Duration::from_secs(5)),
59
- input: "hi!".as_json_payload().expect("serializes fine"),
60
- ..Default::default()
61
- })
62
- .map(|_| ())
63
- .boxed(),
64
- FuzzyWfAction::Shutdown => {
65
- done_setter.cancel();
66
- future::ready(()).boxed()
67
- }
68
- };
69
- fut
70
- })
71
- .await;
72
-
73
- Ok(().into())
74
- }
75
-
76
- #[tokio::test(flavor = "multi_thread", worker_threads = 4)]
77
- async fn fuzzy_workflow() {
78
- let num_workflows = 200;
79
- let wf_name = "fuzzy_wf";
80
- let mut starter = CoreWfStarter::new("fuzzy_workflow");
81
- starter.max_wft(25).max_cached_workflows(25).max_at(25);
82
- // .enable_wf_state_input_recording();
83
- let mut worker = starter.worker().await;
84
- worker.register_wf(wf_name.to_owned(), fuzzy_wf_def);
85
- worker.register_activity("echo_activity", echo);
86
- let client = starter.get_client().await;
87
-
88
- let mut workflow_handles = vec![];
89
- for i in 0..num_workflows {
90
- let wfid = format!("{wf_name}_{i}");
91
- let rid = worker
92
- .submit_wf(
93
- wfid.clone(),
94
- wf_name.to_owned(),
95
- vec![],
96
- WorkflowOptions::default(),
97
- )
98
- .await
99
- .unwrap();
100
- workflow_handles.push(client.get_untyped_workflow_handle(wfid, rid));
101
- }
102
-
103
- let rng = SmallRng::seed_from_u64(523189);
104
- let mut actions: Vec<FuzzyWfAction> = rng.sample_iter(FuzzyWfActionSampler).take(15).collect();
105
- actions.push(FuzzyWfAction::Shutdown);
106
-
107
- let sig_sender = async {
108
- for action in actions {
109
- let sends: FuturesUnordered<_> = (0..num_workflows)
110
- .map(|i| {
111
- client.signal_workflow_execution(
112
- format!("{wf_name}_{i}"),
113
- "".to_string(),
114
- FUZZY_SIG.to_string(),
115
- [action.as_json_payload().expect("Serializes ok")].into_payloads(),
116
- None,
117
- )
118
- })
119
- .collect();
120
- sends
121
- .map(|_| Ok(()))
122
- .forward(sink::drain())
123
- .await
124
- .expect("Sending signals works");
125
- tokio::time::sleep(Duration::from_secs(1)).await;
126
- }
127
- };
128
- let (r1, _) = tokio::join!(worker.run_until_done(), sig_sender);
129
- r1.unwrap();
130
- }
@@ -1,265 +0,0 @@
1
- use futures::{future::join_all, sink, stream::FuturesUnordered, StreamExt};
2
- use std::time::{Duration, Instant};
3
- use temporal_client::{WfClientExt, WorkflowClientTrait, WorkflowOptions};
4
- use temporal_sdk::{ActContext, ActivityOptions, WfContext, WorkflowResult};
5
- use temporal_sdk_core_protos::coresdk::{
6
- workflow_commands::ActivityCancellationType, AsJsonPayloadExt,
7
- };
8
- use temporal_sdk_core_test_utils::{workflows::la_problem_workflow, CoreWfStarter};
9
-
10
- mod fuzzy_workflow;
11
-
12
- #[tokio::test]
13
- async fn activity_load() {
14
- const CONCURRENCY: usize = 512;
15
-
16
- let mut starter = CoreWfStarter::new("activity_load");
17
- starter
18
- .max_wft(CONCURRENCY)
19
- .max_cached_workflows(CONCURRENCY)
20
- .max_at_polls(10)
21
- .max_at(CONCURRENCY);
22
- let mut worker = starter.worker().await;
23
-
24
- let activity_id = "act-1";
25
- let activity_timeout = Duration::from_secs(8);
26
- let task_queue = starter.get_task_queue().to_owned();
27
-
28
- let wf_fn = move |ctx: WfContext| {
29
- let task_queue = task_queue.clone();
30
- let payload = "yo".as_json_payload().unwrap();
31
- async move {
32
- let activity = ActivityOptions {
33
- activity_id: Some(activity_id.to_string()),
34
- activity_type: "test_activity".to_string(),
35
- input: payload.clone(),
36
- task_queue,
37
- schedule_to_start_timeout: Some(activity_timeout),
38
- start_to_close_timeout: Some(activity_timeout),
39
- schedule_to_close_timeout: Some(activity_timeout),
40
- heartbeat_timeout: Some(activity_timeout),
41
- cancellation_type: ActivityCancellationType::TryCancel,
42
- ..Default::default()
43
- };
44
- let res = ctx.activity(activity).await.unwrap_ok_payload();
45
- assert_eq!(res.data, payload.data);
46
- Ok(().into())
47
- }
48
- };
49
-
50
- let starting = Instant::now();
51
- let wf_type = "activity_load";
52
- worker.register_wf(wf_type.to_owned(), wf_fn);
53
- worker.register_activity(
54
- "test_activity",
55
- |_ctx: ActContext, echo: String| async move { Ok(echo) },
56
- );
57
- join_all((0..CONCURRENCY).map(|i| {
58
- let worker = &worker;
59
- let wf_id = format!("activity_load_{i}");
60
- async move {
61
- worker
62
- .submit_wf(
63
- wf_id,
64
- wf_type.to_owned(),
65
- vec![],
66
- WorkflowOptions::default(),
67
- )
68
- .await
69
- .unwrap();
70
- }
71
- }))
72
- .await;
73
- dbg!(starting.elapsed());
74
-
75
- let running = Instant::now();
76
-
77
- worker.run_until_done().await.unwrap();
78
- dbg!(running.elapsed());
79
- }
80
-
81
- #[tokio::test(flavor = "multi_thread", worker_threads = 4)]
82
- async fn workflow_load() {
83
- const SIGNAME: &str = "signame";
84
- let num_workflows = 200;
85
- let wf_name = "workflow_load";
86
- let mut starter = CoreWfStarter::new("workflow_load");
87
- starter
88
- .max_wft(5)
89
- .max_cached_workflows(5)
90
- .max_at_polls(10)
91
- .max_at(100);
92
- let mut worker = starter.worker().await;
93
- worker.register_wf(wf_name.to_owned(), |ctx: WfContext| async move {
94
- let sigchan = ctx.make_signal_channel(SIGNAME).map(Ok);
95
- let drained_fut = sigchan.forward(sink::drain());
96
-
97
- let real_stuff = async move {
98
- for _ in 0..20 {
99
- ctx.activity(ActivityOptions {
100
- activity_type: "echo_activity".to_string(),
101
- start_to_close_timeout: Some(Duration::from_secs(5)),
102
- input: "hi!".as_json_payload().expect("serializes fine"),
103
- ..Default::default()
104
- })
105
- .await;
106
- ctx.timer(Duration::from_secs(1)).await;
107
- }
108
- };
109
- tokio::select! {
110
- _ = drained_fut => {}
111
- _ = real_stuff => {}
112
- }
113
-
114
- Ok(().into())
115
- });
116
- worker.register_activity(
117
- "echo_activity",
118
- |_ctx: ActContext, echo_me: String| async move { Ok(echo_me) },
119
- );
120
- let client = starter.get_client().await;
121
-
122
- let mut workflow_handles = vec![];
123
- for i in 0..num_workflows {
124
- let wfid = format!("{wf_name}_{i}");
125
- let rid = worker
126
- .submit_wf(
127
- wfid.clone(),
128
- wf_name.to_owned(),
129
- vec![],
130
- WorkflowOptions::default(),
131
- )
132
- .await
133
- .unwrap();
134
- workflow_handles.push(client.get_untyped_workflow_handle(wfid, rid));
135
- }
136
-
137
- let sig_sender = async {
138
- loop {
139
- let sends: FuturesUnordered<_> = (0..num_workflows)
140
- .map(|i| {
141
- client.signal_workflow_execution(
142
- format!("{wf_name}_{i}"),
143
- "".to_string(),
144
- SIGNAME.to_string(),
145
- None,
146
- None,
147
- )
148
- })
149
- .collect();
150
- sends
151
- .map(|_| Ok(()))
152
- .forward(sink::drain())
153
- .await
154
- .expect("Sending signals works");
155
- tokio::time::sleep(Duration::from_secs(2)).await;
156
- }
157
- };
158
- tokio::select! { r1 = worker.run_until_done() => {r1.unwrap()}, _ = sig_sender => {}}
159
- }
160
-
161
- #[tokio::test(flavor = "multi_thread", worker_threads = 4)]
162
- async fn evict_while_la_running_no_interference() {
163
- let wf_name = "evict_while_la_running_no_interference";
164
- let mut starter = CoreWfStarter::new(wf_name);
165
- starter.max_local_at(20);
166
- starter.max_cached_workflows(20);
167
- // Though it doesn't make sense to set wft higher than cached workflows, leaving this commented
168
- // introduces more instability that can be useful in the test.
169
- // starter.max_wft(20);
170
- let mut worker = starter.worker().await;
171
-
172
- worker.register_wf(wf_name.to_owned(), la_problem_workflow);
173
- worker.register_activity("delay", |_: ActContext, _: String| async {
174
- tokio::time::sleep(Duration::from_secs(15)).await;
175
- Ok(())
176
- });
177
-
178
- let client = starter.get_client().await;
179
- let subfs = FuturesUnordered::new();
180
- for i in 1..100 {
181
- let wf_id = format!("{wf_name}-{i}");
182
- let run_id = worker
183
- .submit_wf(
184
- &wf_id,
185
- wf_name.to_owned(),
186
- vec![],
187
- WorkflowOptions::default(),
188
- )
189
- .await
190
- .unwrap();
191
- let cw = worker.core_worker.clone();
192
- let client = client.clone();
193
- subfs.push(async move {
194
- // Evict the workflow
195
- tokio::time::sleep(Duration::from_secs(1)).await;
196
- cw.request_workflow_eviction(&run_id);
197
- // Wake up workflow by sending signal
198
- client
199
- .signal_workflow_execution(
200
- wf_id,
201
- run_id.clone(),
202
- "whaatever".to_string(),
203
- None,
204
- None,
205
- )
206
- .await
207
- .unwrap();
208
- });
209
- }
210
- let runf = async {
211
- worker.run_until_done().await.unwrap();
212
- };
213
- tokio::join!(subfs.collect::<Vec<_>>(), runf);
214
- }
215
-
216
- pub async fn many_parallel_timers_longhist(ctx: WfContext) -> WorkflowResult<()> {
217
- for _ in 0..120 {
218
- let mut futs = vec![];
219
- for _ in 0..100 {
220
- futs.push(ctx.timer(Duration::from_millis(100)));
221
- }
222
- join_all(futs).await;
223
- }
224
- Ok(().into())
225
- }
226
-
227
- #[tokio::test]
228
- async fn can_paginate_long_history() {
229
- let wf_name = "can_paginate_long_history";
230
- let mut starter = CoreWfStarter::new(wf_name);
231
- starter.no_remote_activities();
232
- // Do not use sticky queues so we are forced to paginate once history gets long
233
- starter.max_cached_workflows(0);
234
-
235
- let mut worker = starter.worker().await;
236
- worker.register_wf(wf_name.to_owned(), many_parallel_timers_longhist);
237
- let run_id = worker
238
- .submit_wf(
239
- wf_name.to_owned(),
240
- wf_name.to_owned(),
241
- vec![],
242
- WorkflowOptions::default(),
243
- )
244
- .await
245
- .unwrap();
246
- let client = starter.get_client().await;
247
- tokio::spawn(async move {
248
- loop {
249
- for _ in 0..10 {
250
- client
251
- .signal_workflow_execution(
252
- wf_name.to_owned(),
253
- run_id.clone(),
254
- "sig".to_string(),
255
- None,
256
- None,
257
- )
258
- .await
259
- .unwrap();
260
- }
261
- tokio::time::sleep(Duration::from_secs(3)).await;
262
- }
263
- });
264
- worker.run_until_done().await.unwrap();
265
- }
@@ -1,36 +0,0 @@
1
- use std::time::Duration;
2
- use temporal_client::{RetryClient, WorkflowClientTrait, WorkflowService};
3
- use temporal_sdk_core_protos::temporal::api::workflowservice::v1::DescribeNamespaceRequest;
4
- use temporal_sdk_core_test_utils::{get_integ_server_options, CoreWfStarter, NAMESPACE};
5
-
6
- #[tokio::test]
7
- async fn can_use_retry_client() {
8
- // Not terribly interesting by itself but can be useful for manually inspecting metrics etc
9
- let mut core = CoreWfStarter::new("retry_client");
10
- let retry_client = core.get_client().await;
11
- for _ in 0..10 {
12
- retry_client.list_namespaces().await.unwrap();
13
- tokio::time::sleep(Duration::from_millis(10)).await;
14
- }
15
- }
16
-
17
- #[tokio::test]
18
- async fn can_use_retry_raw_client() {
19
- let opts = get_integ_server_options();
20
- let raw_client = opts.connect_no_namespace(None, None).await.unwrap();
21
- let mut retry_client = RetryClient::new(raw_client, opts.retry_config);
22
- retry_client
23
- .describe_namespace(DescribeNamespaceRequest {
24
- namespace: NAMESPACE.to_string(),
25
- ..Default::default()
26
- })
27
- .await
28
- .unwrap();
29
- }
30
-
31
- #[tokio::test]
32
- async fn calls_get_system_info() {
33
- let opts = get_integ_server_options();
34
- let raw_client = opts.connect_no_namespace(None, None).await.unwrap();
35
- assert!(raw_client.get_client().capabilities().is_some());
36
- }
@@ -1,150 +0,0 @@
1
- use std::time::{SystemTime, UNIX_EPOCH};
2
- use temporal_client::{ClientOptionsBuilder, TestService, WorkflowService};
3
- use temporal_sdk_core::ephemeral_server::{
4
- EphemeralExe, EphemeralExeVersion, EphemeralServer, TemporalDevServerConfigBuilder,
5
- TemporaliteConfigBuilder, TestServerConfigBuilder,
6
- };
7
- use temporal_sdk_core_protos::temporal::api::workflowservice::v1::DescribeNamespaceRequest;
8
- use temporal_sdk_core_test_utils::{default_cached_download, NAMESPACE};
9
- use url::Url;
10
-
11
- #[tokio::test]
12
- async fn temporal_cli_default() {
13
- let config = TemporalDevServerConfigBuilder::default()
14
- .exe(default_cached_download())
15
- .build()
16
- .unwrap();
17
- let mut server = config.start_server().await.unwrap();
18
- assert_ephemeral_server(&server).await;
19
- server.shutdown().await.unwrap();
20
- }
21
-
22
- #[tokio::test]
23
- async fn temporal_cli_fixed() {
24
- let config = TemporalDevServerConfigBuilder::default()
25
- .exe(fixed_cached_download("v0.4.0"))
26
- .build()
27
- .unwrap();
28
- let mut server = config.start_server().await.unwrap();
29
- assert_ephemeral_server(&server).await;
30
- server.shutdown().await.unwrap();
31
- }
32
-
33
- #[tokio::test]
34
- async fn temporalite_default() {
35
- let config = TemporaliteConfigBuilder::default()
36
- .exe(default_cached_download())
37
- .build()
38
- .unwrap();
39
- let mut server = config.start_server().await.unwrap();
40
- assert_ephemeral_server(&server).await;
41
- server.shutdown().await.unwrap();
42
- }
43
-
44
- #[tokio::test]
45
- async fn temporalite_fixed() {
46
- let config = TemporaliteConfigBuilder::default()
47
- .exe(fixed_cached_download("v0.2.0"))
48
- .build()
49
- .unwrap();
50
- let mut server = config.start_server().await.unwrap();
51
- assert_ephemeral_server(&server).await;
52
- server.shutdown().await.unwrap();
53
- }
54
-
55
- #[tokio::test]
56
- async fn temporalite_shutdown_port_reuse() {
57
- // Start, test shutdown, do again immediately on same port to ensure we can
58
- // reuse after shutdown
59
- let config = TemporaliteConfigBuilder::default()
60
- .exe(default_cached_download())
61
- .port(Some(10123))
62
- .build()
63
- .unwrap();
64
- let mut server = config.start_server().await.unwrap();
65
- assert_ephemeral_server(&server).await;
66
- server.shutdown().await.unwrap();
67
- let mut server = config.start_server().await.unwrap();
68
- assert_ephemeral_server(&server).await;
69
- server.shutdown().await.unwrap();
70
- }
71
-
72
- #[tokio::test]
73
- async fn test_server_default() {
74
- let config = TestServerConfigBuilder::default()
75
- .exe(default_cached_download())
76
- .build()
77
- .unwrap();
78
- let mut server = config.start_server().await.unwrap();
79
- assert_ephemeral_server(&server).await;
80
- server.shutdown().await.unwrap();
81
- }
82
-
83
- #[tokio::test]
84
- async fn test_server_fixed() {
85
- let config = TestServerConfigBuilder::default()
86
- .exe(fixed_cached_download("v1.16.0"))
87
- .build()
88
- .unwrap();
89
- let mut server = config.start_server().await.unwrap();
90
- assert_ephemeral_server(&server).await;
91
- server.shutdown().await.unwrap();
92
- }
93
-
94
- #[tokio::test]
95
- async fn test_server_shutdown_port_reuse() {
96
- // Start, test shutdown, do again immediately on same port to ensure we can
97
- // reuse after shutdown
98
- let config = TestServerConfigBuilder::default()
99
- .exe(default_cached_download())
100
- .port(Some(10124))
101
- .build()
102
- .unwrap();
103
- let mut server = config.start_server().await.unwrap();
104
- assert_ephemeral_server(&server).await;
105
- server.shutdown().await.unwrap();
106
- let mut server = config.start_server().await.unwrap();
107
- assert_ephemeral_server(&server).await;
108
- server.shutdown().await.unwrap();
109
- }
110
-
111
- fn fixed_cached_download(version: &str) -> EphemeralExe {
112
- EphemeralExe::CachedDownload {
113
- version: EphemeralExeVersion::Fixed(version.to_string()),
114
- dest_dir: None,
115
- }
116
- }
117
-
118
- async fn assert_ephemeral_server(server: &EphemeralServer) {
119
- // Connect and describe namespace
120
- let mut client = ClientOptionsBuilder::default()
121
- .identity("integ_tester".to_string())
122
- .target_url(Url::try_from(&*format!("http://{}", server.target)).unwrap())
123
- .client_name("temporal-core".to_string())
124
- .client_version("0.1.0".to_string())
125
- .build()
126
- .unwrap()
127
- .connect_no_namespace(None, None)
128
- .await
129
- .unwrap();
130
- let resp = client
131
- .describe_namespace(DescribeNamespaceRequest {
132
- namespace: NAMESPACE.to_string(),
133
- ..Default::default()
134
- })
135
- .await
136
- .unwrap();
137
- assert!(resp.into_inner().namespace_info.unwrap().name == "default");
138
-
139
- // If it has test service, make sure we can use it too
140
- if server.has_test_service {
141
- let resp = client.get_current_time(()).await.unwrap();
142
- // Make sure it's within 5 mins of now
143
- let resp_seconds = resp.get_ref().time.as_ref().unwrap().seconds as u64;
144
- let curr_seconds = SystemTime::now()
145
- .duration_since(UNIX_EPOCH)
146
- .unwrap()
147
- .as_secs();
148
- assert!(curr_seconds - 300 < resp_seconds && curr_seconds + 300 > resp_seconds);
149
- }
150
- }