amit-temporalio 0.3.1-x86_64-linux-musl

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 (177) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +2 -0
  3. data/Gemfile +23 -0
  4. data/Rakefile +101 -0
  5. data/lib/temporalio/activity/complete_async_error.rb +11 -0
  6. data/lib/temporalio/activity/context.rb +116 -0
  7. data/lib/temporalio/activity/definition.rb +189 -0
  8. data/lib/temporalio/activity/info.rb +64 -0
  9. data/lib/temporalio/activity.rb +12 -0
  10. data/lib/temporalio/api/activity/v1/message.rb +25 -0
  11. data/lib/temporalio/api/batch/v1/message.rb +31 -0
  12. data/lib/temporalio/api/cloud/account/v1/message.rb +28 -0
  13. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +126 -0
  14. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
  15. data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
  16. data/lib/temporalio/api/cloud/identity/v1/message.rb +41 -0
  17. data/lib/temporalio/api/cloud/namespace/v1/message.rb +42 -0
  18. data/lib/temporalio/api/cloud/nexus/v1/message.rb +31 -0
  19. data/lib/temporalio/api/cloud/operation/v1/message.rb +28 -0
  20. data/lib/temporalio/api/cloud/region/v1/message.rb +24 -0
  21. data/lib/temporalio/api/cloud/resource/v1/message.rb +23 -0
  22. data/lib/temporalio/api/cloud/sink/v1/message.rb +24 -0
  23. data/lib/temporalio/api/cloud/usage/v1/message.rb +31 -0
  24. data/lib/temporalio/api/command/v1/message.rb +46 -0
  25. data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
  26. data/lib/temporalio/api/common/v1/message.rb +47 -0
  27. data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
  28. data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
  29. data/lib/temporalio/api/enums/v1/common.rb +26 -0
  30. data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
  31. data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
  32. data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
  33. data/lib/temporalio/api/enums/v1/query.rb +22 -0
  34. data/lib/temporalio/api/enums/v1/reset.rb +23 -0
  35. data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
  36. data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
  37. data/lib/temporalio/api/enums/v1/update.rb +22 -0
  38. data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
  39. data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
  40. data/lib/temporalio/api/export/v1/message.rb +24 -0
  41. data/lib/temporalio/api/failure/v1/message.rb +35 -0
  42. data/lib/temporalio/api/filter/v1/message.rb +27 -0
  43. data/lib/temporalio/api/history/v1/message.rb +90 -0
  44. data/lib/temporalio/api/namespace/v1/message.rb +31 -0
  45. data/lib/temporalio/api/nexus/v1/message.rb +40 -0
  46. data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
  47. data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
  48. data/lib/temporalio/api/operatorservice.rb +3 -0
  49. data/lib/temporalio/api/payload_visitor.rb +1513 -0
  50. data/lib/temporalio/api/protocol/v1/message.rb +23 -0
  51. data/lib/temporalio/api/query/v1/message.rb +27 -0
  52. data/lib/temporalio/api/replication/v1/message.rb +26 -0
  53. data/lib/temporalio/api/schedule/v1/message.rb +43 -0
  54. data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
  55. data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
  56. data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
  57. data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
  58. data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
  59. data/lib/temporalio/api/testservice/v1/request_response.rb +31 -0
  60. data/lib/temporalio/api/testservice/v1/service.rb +23 -0
  61. data/lib/temporalio/api/update/v1/message.rb +33 -0
  62. data/lib/temporalio/api/version/v1/message.rb +26 -0
  63. data/lib/temporalio/api/workflow/v1/message.rb +43 -0
  64. data/lib/temporalio/api/workflowservice/v1/request_response.rb +204 -0
  65. data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
  66. data/lib/temporalio/api/workflowservice.rb +3 -0
  67. data/lib/temporalio/api.rb +14 -0
  68. data/lib/temporalio/cancellation.rb +170 -0
  69. data/lib/temporalio/client/activity_id_reference.rb +32 -0
  70. data/lib/temporalio/client/async_activity_handle.rb +85 -0
  71. data/lib/temporalio/client/connection/cloud_service.rb +726 -0
  72. data/lib/temporalio/client/connection/operator_service.rb +201 -0
  73. data/lib/temporalio/client/connection/service.rb +42 -0
  74. data/lib/temporalio/client/connection/test_service.rb +111 -0
  75. data/lib/temporalio/client/connection/workflow_service.rb +1041 -0
  76. data/lib/temporalio/client/connection.rb +316 -0
  77. data/lib/temporalio/client/interceptor.rb +416 -0
  78. data/lib/temporalio/client/schedule.rb +967 -0
  79. data/lib/temporalio/client/schedule_handle.rb +126 -0
  80. data/lib/temporalio/client/workflow_execution.rb +100 -0
  81. data/lib/temporalio/client/workflow_execution_count.rb +36 -0
  82. data/lib/temporalio/client/workflow_execution_status.rb +18 -0
  83. data/lib/temporalio/client/workflow_handle.rb +389 -0
  84. data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
  85. data/lib/temporalio/client/workflow_update_handle.rb +65 -0
  86. data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
  87. data/lib/temporalio/client.rb +484 -0
  88. data/lib/temporalio/common_enums.rb +41 -0
  89. data/lib/temporalio/converters/data_converter.rb +99 -0
  90. data/lib/temporalio/converters/failure_converter.rb +202 -0
  91. data/lib/temporalio/converters/payload_codec.rb +26 -0
  92. data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
  93. data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
  94. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
  95. data/lib/temporalio/converters/payload_converter/composite.rb +66 -0
  96. data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
  97. data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
  98. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
  99. data/lib/temporalio/converters/payload_converter.rb +71 -0
  100. data/lib/temporalio/converters/raw_value.rb +20 -0
  101. data/lib/temporalio/converters.rb +9 -0
  102. data/lib/temporalio/error/failure.rb +219 -0
  103. data/lib/temporalio/error.rb +155 -0
  104. data/lib/temporalio/internal/bridge/3.2/temporalio_bridge.so +0 -0
  105. data/lib/temporalio/internal/bridge/3.3/temporalio_bridge.so +0 -0
  106. data/lib/temporalio/internal/bridge/3.4/temporalio_bridge.so +0 -0
  107. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
  108. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
  109. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
  110. data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
  111. data/lib/temporalio/internal/bridge/api/core_interface.rb +40 -0
  112. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
  113. data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +33 -0
  114. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +56 -0
  115. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +57 -0
  116. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
  117. data/lib/temporalio/internal/bridge/api.rb +3 -0
  118. data/lib/temporalio/internal/bridge/client.rb +95 -0
  119. data/lib/temporalio/internal/bridge/runtime.rb +53 -0
  120. data/lib/temporalio/internal/bridge/testing.rb +66 -0
  121. data/lib/temporalio/internal/bridge/worker.rb +85 -0
  122. data/lib/temporalio/internal/bridge.rb +36 -0
  123. data/lib/temporalio/internal/client/implementation.rb +700 -0
  124. data/lib/temporalio/internal/metric.rb +122 -0
  125. data/lib/temporalio/internal/proto_utils.rb +133 -0
  126. data/lib/temporalio/internal/worker/activity_worker.rb +376 -0
  127. data/lib/temporalio/internal/worker/multi_runner.rb +213 -0
  128. data/lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb +54 -0
  129. data/lib/temporalio/internal/worker/workflow_instance/context.rb +333 -0
  130. data/lib/temporalio/internal/worker/workflow_instance/details.rb +44 -0
  131. data/lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb +32 -0
  132. data/lib/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rb +22 -0
  133. data/lib/temporalio/internal/worker/workflow_instance/handler_execution.rb +25 -0
  134. data/lib/temporalio/internal/worker/workflow_instance/handler_hash.rb +41 -0
  135. data/lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb +97 -0
  136. data/lib/temporalio/internal/worker/workflow_instance/inbound_implementation.rb +62 -0
  137. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +415 -0
  138. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb +37 -0
  139. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_metric.rb +40 -0
  140. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +163 -0
  141. data/lib/temporalio/internal/worker/workflow_instance.rb +730 -0
  142. data/lib/temporalio/internal/worker/workflow_worker.rb +236 -0
  143. data/lib/temporalio/internal.rb +7 -0
  144. data/lib/temporalio/metric.rb +109 -0
  145. data/lib/temporalio/retry_policy.rb +74 -0
  146. data/lib/temporalio/runtime.rb +314 -0
  147. data/lib/temporalio/scoped_logger.rb +96 -0
  148. data/lib/temporalio/search_attributes.rb +343 -0
  149. data/lib/temporalio/testing/activity_environment.rb +136 -0
  150. data/lib/temporalio/testing/workflow_environment.rb +383 -0
  151. data/lib/temporalio/testing.rb +10 -0
  152. data/lib/temporalio/version.rb +5 -0
  153. data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
  154. data/lib/temporalio/worker/activity_executor/thread_pool.rb +46 -0
  155. data/lib/temporalio/worker/activity_executor.rb +55 -0
  156. data/lib/temporalio/worker/interceptor.rb +362 -0
  157. data/lib/temporalio/worker/thread_pool.rb +237 -0
  158. data/lib/temporalio/worker/tuner.rb +189 -0
  159. data/lib/temporalio/worker/workflow_executor/thread_pool.rb +230 -0
  160. data/lib/temporalio/worker/workflow_executor.rb +26 -0
  161. data/lib/temporalio/worker/workflow_replayer.rb +343 -0
  162. data/lib/temporalio/worker.rb +569 -0
  163. data/lib/temporalio/workflow/activity_cancellation_type.rb +20 -0
  164. data/lib/temporalio/workflow/child_workflow_cancellation_type.rb +21 -0
  165. data/lib/temporalio/workflow/child_workflow_handle.rb +43 -0
  166. data/lib/temporalio/workflow/definition.rb +566 -0
  167. data/lib/temporalio/workflow/external_workflow_handle.rb +41 -0
  168. data/lib/temporalio/workflow/future.rb +151 -0
  169. data/lib/temporalio/workflow/handler_unfinished_policy.rb +13 -0
  170. data/lib/temporalio/workflow/info.rb +82 -0
  171. data/lib/temporalio/workflow/parent_close_policy.rb +19 -0
  172. data/lib/temporalio/workflow/update_info.rb +20 -0
  173. data/lib/temporalio/workflow.rb +529 -0
  174. data/lib/temporalio/workflow_history.rb +47 -0
  175. data/lib/temporalio.rb +11 -0
  176. data/temporalio.gemspec +28 -0
  177. metadata +238 -0
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/api'
4
+ require 'temporalio/client/interceptor'
5
+ require 'temporalio/error'
6
+
7
+ module Temporalio
8
+ class Client
9
+ # Reference to an existing activity by its workflow ID, run ID, and activity ID.
10
+ class ActivityIDReference
11
+ # @return [String] ID for the workflow.
12
+ attr_reader :workflow_id
13
+
14
+ # @return [String, nil] Run ID for the workflow.
15
+ attr_reader :run_id
16
+
17
+ # @return [String] ID for the activity.
18
+ attr_reader :activity_id
19
+
20
+ # Create an activity ID reference.
21
+ #
22
+ # @param workflow_id [String] ID for the workflow.
23
+ # @param run_id [String, nil] Run ID for the workflow.
24
+ # @param activity_id [String] ID for the workflow.
25
+ def initialize(workflow_id:, run_id:, activity_id:)
26
+ @workflow_id = workflow_id
27
+ @run_id = run_id
28
+ @activity_id = activity_id
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/api'
4
+ require 'temporalio/client/activity_id_reference'
5
+ require 'temporalio/client/interceptor'
6
+ require 'temporalio/error'
7
+
8
+ module Temporalio
9
+ class Client
10
+ # Handle representing an external activity for completion and heartbeat. This is usually created via
11
+ # {Client.async_activity_handle}.
12
+ class AsyncActivityHandle
13
+ # @return [String, nil] Task token if created with a task token. Mutually exclusive with {id_reference}.
14
+ attr_reader :task_token
15
+
16
+ # @return [ActivityIDReference, nil] Activity ID reference if created with one. Mutually exclusive with
17
+ # {task_token}.
18
+ attr_reader :id_reference
19
+
20
+ # @!visibility private
21
+ def initialize(client:, task_token:, id_reference:)
22
+ @client = client
23
+ @task_token = task_token
24
+ @id_reference = id_reference
25
+ end
26
+
27
+ # Record a heartbeat for the activity.
28
+ #
29
+ # @param details [Array<Object>] Details of the heartbeat.
30
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
31
+ def heartbeat(*details, rpc_options: nil)
32
+ @client._impl.heartbeat_async_activity(Interceptor::HeartbeatAsyncActivityInput.new(
33
+ task_token_or_id_reference:,
34
+ details:,
35
+ rpc_options:
36
+ ))
37
+ end
38
+
39
+ # Complete the activity.
40
+ #
41
+ # @param result [Object, nil] Result of the activity.
42
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
43
+ def complete(result = nil, rpc_options: nil)
44
+ @client._impl.complete_async_activity(Interceptor::CompleteAsyncActivityInput.new(
45
+ task_token_or_id_reference:,
46
+ result:,
47
+ rpc_options:
48
+ ))
49
+ end
50
+
51
+ # Fail the activity.
52
+ #
53
+ # @param error [Exception] Error for the activity.
54
+ # @param last_heartbeat_details [Array<Object>] Last heartbeat details for the activity.
55
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
56
+ def fail(error, last_heartbeat_details: [], rpc_options: nil)
57
+ @client._impl.fail_async_activity(Interceptor::FailAsyncActivityInput.new(
58
+ task_token_or_id_reference:,
59
+ error:,
60
+ last_heartbeat_details:,
61
+ rpc_options:
62
+ ))
63
+ end
64
+
65
+ # Report the activity as canceled.
66
+ #
67
+ # @param details [Array<Object>] Cancellation details.
68
+ # @param rpc_options [RPCOptions, nil] Advanced RPC options.
69
+ # @raise [AsyncActivityCanceledError] If the activity has been canceled.
70
+ def report_cancellation(*details, rpc_options: nil)
71
+ @client._impl.report_cancellation_async_activity(Interceptor::ReportCancellationAsyncActivityInput.new(
72
+ task_token_or_id_reference:,
73
+ details:,
74
+ rpc_options:
75
+ ))
76
+ end
77
+
78
+ private
79
+
80
+ def task_token_or_id_reference
81
+ @task_token || @id_reference or raise
82
+ end
83
+ end
84
+ end
85
+ end