@temporalio/core-bridge 1.5.2 → 1.7.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 (194) hide show
  1. package/Cargo.lock +304 -112
  2. package/lib/index.d.ts +8 -6
  3. package/lib/index.js.map +1 -1
  4. package/package.json +9 -4
  5. package/releases/aarch64-apple-darwin/index.node +0 -0
  6. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  7. package/releases/x86_64-apple-darwin/index.node +0 -0
  8. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  9. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  10. package/sdk-core/.buildkite/docker/Dockerfile +2 -2
  11. package/sdk-core/.buildkite/docker/docker-compose.yaml +1 -1
  12. package/sdk-core/.buildkite/pipeline.yml +2 -4
  13. package/sdk-core/.cargo/config.toml +5 -2
  14. package/sdk-core/.github/workflows/heavy.yml +29 -0
  15. package/sdk-core/Cargo.toml +1 -1
  16. package/sdk-core/README.md +20 -10
  17. package/sdk-core/client/src/lib.rs +215 -39
  18. package/sdk-core/client/src/metrics.rs +17 -8
  19. package/sdk-core/client/src/raw.rs +4 -4
  20. package/sdk-core/client/src/retry.rs +32 -20
  21. package/sdk-core/core/Cargo.toml +25 -12
  22. package/sdk-core/core/src/abstractions/take_cell.rs +28 -0
  23. package/sdk-core/core/src/abstractions.rs +204 -14
  24. package/sdk-core/core/src/core_tests/activity_tasks.rs +143 -50
  25. package/sdk-core/core/src/core_tests/child_workflows.rs +6 -5
  26. package/sdk-core/core/src/core_tests/determinism.rs +165 -2
  27. package/sdk-core/core/src/core_tests/local_activities.rs +431 -43
  28. package/sdk-core/core/src/core_tests/queries.rs +34 -16
  29. package/sdk-core/core/src/core_tests/workers.rs +8 -5
  30. package/sdk-core/core/src/core_tests/workflow_tasks.rs +588 -55
  31. package/sdk-core/core/src/ephemeral_server/mod.rs +113 -12
  32. package/sdk-core/core/src/internal_flags.rs +155 -0
  33. package/sdk-core/core/src/lib.rs +16 -9
  34. package/sdk-core/core/src/protosext/mod.rs +1 -1
  35. package/sdk-core/core/src/replay/mod.rs +16 -27
  36. package/sdk-core/core/src/telemetry/log_export.rs +1 -1
  37. package/sdk-core/core/src/telemetry/metrics.rs +69 -35
  38. package/sdk-core/core/src/telemetry/mod.rs +60 -21
  39. package/sdk-core/core/src/telemetry/prometheus_server.rs +19 -13
  40. package/sdk-core/core/src/test_help/mod.rs +73 -14
  41. package/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +119 -160
  42. package/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
  43. package/sdk-core/core/src/worker/activities/local_activities.rs +379 -129
  44. package/sdk-core/core/src/worker/activities.rs +350 -175
  45. package/sdk-core/core/src/worker/client/mocks.rs +22 -2
  46. package/sdk-core/core/src/worker/client.rs +18 -2
  47. package/sdk-core/core/src/worker/mod.rs +183 -64
  48. package/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
  49. package/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
  50. package/sdk-core/core/src/worker/workflow/history_update.rs +916 -277
  51. package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +216 -183
  52. package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +9 -12
  53. package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +7 -9
  54. package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +160 -87
  55. package/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +13 -14
  56. package/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +7 -9
  57. package/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +14 -17
  58. package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +242 -110
  59. package/sdk-core/core/src/worker/workflow/machines/mod.rs +27 -19
  60. package/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +9 -11
  61. package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +321 -206
  62. package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +13 -18
  63. package/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +20 -29
  64. package/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
  65. package/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +257 -51
  66. package/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
  67. package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +310 -150
  68. package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +17 -20
  69. package/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +31 -15
  70. package/sdk-core/core/src/worker/workflow/managed_run.rs +1052 -380
  71. package/sdk-core/core/src/worker/workflow/mod.rs +598 -390
  72. package/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
  73. package/sdk-core/core/src/worker/workflow/wft_extraction.rs +137 -0
  74. package/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
  75. package/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
  76. package/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
  77. package/sdk-core/core/src/worker/workflow/workflow_stream.rs +469 -718
  78. package/sdk-core/core-api/Cargo.toml +2 -1
  79. package/sdk-core/core-api/src/errors.rs +1 -34
  80. package/sdk-core/core-api/src/lib.rs +19 -9
  81. package/sdk-core/core-api/src/telemetry.rs +4 -6
  82. package/sdk-core/core-api/src/worker.rs +19 -1
  83. package/sdk-core/etc/deps.svg +115 -140
  84. package/sdk-core/etc/regen-depgraph.sh +5 -0
  85. package/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +86 -61
  86. package/sdk-core/fsm/rustfsm_trait/src/lib.rs +29 -71
  87. package/sdk-core/histories/ends_empty_wft_complete.bin +0 -0
  88. package/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  89. package/sdk-core/histories/old_change_marker_format.bin +0 -0
  90. package/sdk-core/protos/api_upstream/.github/CODEOWNERS +2 -1
  91. package/sdk-core/protos/api_upstream/Makefile +6 -6
  92. package/sdk-core/protos/api_upstream/build/go.mod +7 -0
  93. package/sdk-core/protos/api_upstream/build/go.sum +5 -0
  94. package/sdk-core/protos/api_upstream/build/tools.go +29 -0
  95. package/sdk-core/protos/api_upstream/go.mod +6 -0
  96. package/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +9 -2
  97. package/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +7 -26
  98. package/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +13 -2
  99. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
  100. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +3 -7
  101. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
  102. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +8 -8
  103. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +25 -2
  104. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
  105. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
  106. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
  107. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
  108. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
  109. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +24 -19
  110. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
  111. package/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
  112. package/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
  113. package/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
  114. package/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +49 -26
  115. package/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +4 -2
  116. package/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +5 -2
  117. package/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -2
  118. package/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +57 -0
  119. package/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
  120. package/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
  121. package/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +2 -2
  122. package/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
  123. package/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +2 -2
  124. package/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +71 -6
  125. package/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
  126. package/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +2 -2
  127. package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +64 -28
  128. package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +4 -4
  129. package/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +7 -8
  130. package/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +10 -7
  131. package/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +19 -30
  132. package/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
  133. package/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
  134. package/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +8 -0
  135. package/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +67 -60
  136. package/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +85 -84
  137. package/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +9 -3
  138. package/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
  139. package/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
  140. package/sdk-core/sdk/Cargo.toml +5 -4
  141. package/sdk-core/sdk/src/lib.rs +108 -26
  142. package/sdk-core/sdk/src/workflow_context/options.rs +7 -1
  143. package/sdk-core/sdk/src/workflow_context.rs +24 -17
  144. package/sdk-core/sdk/src/workflow_future.rs +16 -15
  145. package/sdk-core/sdk-core-protos/Cargo.toml +5 -2
  146. package/sdk-core/sdk-core-protos/build.rs +36 -2
  147. package/sdk-core/sdk-core-protos/src/history_builder.rs +138 -106
  148. package/sdk-core/sdk-core-protos/src/history_info.rs +10 -1
  149. package/sdk-core/sdk-core-protos/src/lib.rs +272 -87
  150. package/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
  151. package/sdk-core/test-utils/Cargo.toml +3 -1
  152. package/sdk-core/test-utils/src/canned_histories.rs +106 -296
  153. package/sdk-core/test-utils/src/histfetch.rs +1 -1
  154. package/sdk-core/test-utils/src/lib.rs +82 -23
  155. package/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
  156. package/sdk-core/test-utils/src/workflows.rs +29 -0
  157. package/sdk-core/tests/fuzzy_workflow.rs +130 -0
  158. package/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
  159. package/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
  160. package/sdk-core/tests/integ_tests/heartbeat_tests.rs +10 -5
  161. package/sdk-core/tests/integ_tests/metrics_tests.rs +218 -16
  162. package/sdk-core/tests/integ_tests/polling_tests.rs +4 -47
  163. package/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
  164. package/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
  165. package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +161 -72
  166. package/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
  167. package/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
  168. package/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +80 -3
  169. package/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
  170. package/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
  171. package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +94 -200
  172. package/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +2 -4
  173. package/sdk-core/tests/integ_tests/workflow_tests/patches.rs +34 -28
  174. package/sdk-core/tests/integ_tests/workflow_tests/replay.rs +76 -7
  175. package/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
  176. package/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
  177. package/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
  178. package/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
  179. package/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +7 -8
  180. package/sdk-core/tests/integ_tests/workflow_tests.rs +13 -14
  181. package/sdk-core/tests/main.rs +3 -13
  182. package/sdk-core/tests/runner.rs +75 -36
  183. package/sdk-core/tests/wf_input_replay.rs +32 -0
  184. package/src/conversions.rs +14 -8
  185. package/src/runtime.rs +9 -8
  186. package/ts/index.ts +8 -6
  187. package/sdk-core/bridge-ffi/Cargo.toml +0 -24
  188. package/sdk-core/bridge-ffi/LICENSE.txt +0 -23
  189. package/sdk-core/bridge-ffi/build.rs +0 -25
  190. package/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -224
  191. package/sdk-core/bridge-ffi/src/lib.rs +0 -746
  192. package/sdk-core/bridge-ffi/src/wrappers.rs +0 -221
  193. package/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
  194. package/sdk-core/sdk/src/conversions.rs +0 -8
@@ -1,221 +0,0 @@
1
- use std::{net::SocketAddr, str::FromStr};
2
- use temporal_sdk_core::Url;
3
- use temporal_sdk_core_api::telemetry::{
4
- Logger, MetricsExporter, OtelCollectorOptions, TelemetryOptions, TelemetryOptionsBuilder,
5
- TraceExportConfig, TraceExporter,
6
- };
7
- use temporal_sdk_core_protos::coresdk::bridge;
8
-
9
- // Present for try-from only
10
- pub struct InitTelemetryRequest(pub bridge::InitTelemetryRequest);
11
-
12
- impl TryFrom<InitTelemetryRequest> for TelemetryOptions {
13
- type Error = String;
14
-
15
- fn try_from(InitTelemetryRequest(req): InitTelemetryRequest) -> Result<Self, Self::Error> {
16
- let mut telemetry_opts = TelemetryOptionsBuilder::default();
17
- match req.logging {
18
- None => {}
19
- Some(bridge::init_telemetry_request::Logging::Console(_)) => {
20
- telemetry_opts.logging(Logger::Console {
21
- filter: req.tracing_filter.clone(),
22
- });
23
- }
24
- Some(bridge::init_telemetry_request::Logging::Forward(
25
- bridge::init_telemetry_request::ForwardLoggerOptions { level },
26
- )) => {
27
- if let Some(_level) = bridge::LogLevel::from_i32(level) {
28
- // TODO: This is ignored now, but I'm not fixing since we may never use this.
29
- // let level = match level {
30
- // bridge::LogLevel::Unspecified => {
31
- // return Err("Must specify log level".to_string())
32
- // }
33
- // bridge::LogLevel::Off => LevelFilter::OFF,
34
- // bridge::LogLevel::Error => LevelFilter::ERROR,
35
- // bridge::LogLevel::Warn => LevelFilter::WARN,
36
- // bridge::LogLevel::Info => LevelFilter::INFO,
37
- // bridge::LogLevel::Debug => LevelFilter::DEBUG,
38
- // bridge::LogLevel::Trace => LevelFilter::TRACE,
39
- // };
40
- telemetry_opts.logging(Logger::Forward {
41
- filter: req.tracing_filter.clone(),
42
- });
43
- } else {
44
- return Err(format!("Unknown LogLevel: {}", level));
45
- }
46
- }
47
- }
48
- match req.metrics {
49
- None => {}
50
- Some(bridge::init_telemetry_request::Metrics::Prometheus(
51
- bridge::init_telemetry_request::PrometheusOptions {
52
- export_bind_address,
53
- },
54
- )) => {
55
- telemetry_opts.metrics(MetricsExporter::Prometheus(
56
- SocketAddr::from_str(&export_bind_address)
57
- .map_err(|err| format!("invalid Prometheus address: {}", err))?,
58
- ));
59
- }
60
- Some(bridge::init_telemetry_request::Metrics::OtelMetrics(
61
- bridge::init_telemetry_request::OtelCollectorOptions { url, headers },
62
- )) => {
63
- telemetry_opts.metrics(MetricsExporter::Otel(OtelCollectorOptions {
64
- url: Url::parse(&url).map_err(|err| {
65
- format!("invalid OpenTelemetry collector URL for metrics: {}", err)
66
- })?,
67
- headers,
68
- metric_periodicity: None,
69
- }));
70
- }
71
- }
72
- match req.tracing {
73
- None => {}
74
- Some(bridge::init_telemetry_request::Tracing::OtelTracing(
75
- bridge::init_telemetry_request::OtelCollectorOptions { url, headers },
76
- )) => {
77
- telemetry_opts.tracing(TraceExportConfig {
78
- filter: req.tracing_filter.clone(),
79
- exporter: TraceExporter::Otel(OtelCollectorOptions {
80
- url: Url::parse(&url).map_err(|err| {
81
- format!("invalid OpenTelemetry collector URL for tracing: {}", err)
82
- })?,
83
- headers,
84
- metric_periodicity: None,
85
- }),
86
- });
87
- }
88
- }
89
-
90
- telemetry_opts
91
- .build()
92
- .map_err(|err| format!("invalid telemetry options: {}", err))
93
- }
94
- }
95
-
96
- pub struct ClientOptions(pub bridge::CreateClientRequest);
97
-
98
- impl TryFrom<ClientOptions> for temporal_sdk_core::ClientOptions {
99
- type Error = String;
100
-
101
- fn try_from(ClientOptions(req): ClientOptions) -> Result<Self, Self::Error> {
102
- let mut client_opts = temporal_sdk_core::ClientOptionsBuilder::default();
103
- if !req.target_url.is_empty() {
104
- client_opts.target_url(
105
- temporal_sdk_core::Url::parse(&req.target_url)
106
- .map_err(|err| format!("invalid target URL: {}", err))?,
107
- );
108
- }
109
- if !req.client_name.is_empty() {
110
- client_opts.client_name(req.client_name);
111
- }
112
- if !req.client_version.is_empty() {
113
- client_opts.client_version(req.client_version);
114
- }
115
- if !req.identity.is_empty() {
116
- client_opts.identity(req.identity);
117
- }
118
- if let Some(req_tls_config) = req.tls_config {
119
- let mut tls_config = temporal_sdk_core::TlsConfig::default();
120
- if !req_tls_config.server_root_ca_cert.is_empty() {
121
- tls_config.server_root_ca_cert = Some(req_tls_config.server_root_ca_cert);
122
- }
123
- if !req_tls_config.domain.is_empty() {
124
- tls_config.domain = Some(req_tls_config.domain);
125
- }
126
- if !req_tls_config.client_cert.is_empty()
127
- || !req_tls_config.client_private_key.is_empty()
128
- {
129
- tls_config.client_tls_config = Some(temporal_sdk_core::ClientTlsConfig {
130
- client_cert: req_tls_config.client_cert,
131
- client_private_key: req_tls_config.client_private_key,
132
- })
133
- }
134
- client_opts.tls_cfg(tls_config);
135
- }
136
- if let Some(req_retry_config) = req.retry_config {
137
- let mut retry_config = temporal_sdk_core::RetryConfig::default();
138
- if let Some(v) = req_retry_config.initial_interval {
139
- retry_config.initial_interval =
140
- v.try_into().map_err(|_| "invalid initial interval")?;
141
- }
142
- if let Some(v) = req_retry_config.randomization_factor {
143
- retry_config.randomization_factor = v;
144
- }
145
- if let Some(v) = req_retry_config.multiplier {
146
- retry_config.multiplier = v;
147
- }
148
- if let Some(v) = req_retry_config.max_interval {
149
- retry_config.max_interval = v.try_into().map_err(|_| "invalid max interval")?;
150
- }
151
- if let Some(v) = req_retry_config.max_elapsed_time {
152
- retry_config.max_elapsed_time =
153
- Some(v.try_into().map_err(|_| "invalid max elapsed time")?);
154
- }
155
- if let Some(v) = req_retry_config.max_retries {
156
- retry_config.max_retries = v as usize;
157
- }
158
- client_opts.retry_config(retry_config);
159
- }
160
- client_opts
161
- .build()
162
- .map_err(|err| format!("invalid client options: {}", err))
163
- }
164
- }
165
-
166
- // Present for try-from only
167
- pub struct WorkerConfig(pub bridge::CreateWorkerRequest);
168
-
169
- impl TryFrom<WorkerConfig> for temporal_sdk_core_api::worker::WorkerConfig {
170
- type Error = String;
171
-
172
- fn try_from(WorkerConfig(req): WorkerConfig) -> Result<Self, Self::Error> {
173
- let mut config = temporal_sdk_core_api::worker::WorkerConfigBuilder::default();
174
- if !req.task_queue.is_empty() {
175
- config.task_queue(req.task_queue);
176
- }
177
- if let Some(v) = req.max_cached_workflows {
178
- config.max_cached_workflows(v as usize);
179
- }
180
- if let Some(v) = req.max_outstanding_workflow_tasks {
181
- config.max_outstanding_workflow_tasks(v as usize);
182
- }
183
- if let Some(v) = req.max_outstanding_activities {
184
- config.max_outstanding_activities(v as usize);
185
- }
186
- if let Some(v) = req.max_outstanding_local_activities {
187
- config.max_outstanding_local_activities(v as usize);
188
- }
189
- if let Some(v) = req.max_concurrent_wft_polls {
190
- config.max_concurrent_wft_polls(v as usize);
191
- }
192
- if let Some(v) = req.nonsticky_to_sticky_poll_ratio {
193
- config.nonsticky_to_sticky_poll_ratio(v);
194
- }
195
- if let Some(v) = req.max_concurrent_at_polls {
196
- config.max_concurrent_at_polls(v as usize);
197
- }
198
- config.no_remote_activities(req.no_remote_activities);
199
- if let Some(v) = req.sticky_queue_schedule_to_start_timeout {
200
- let v: std::time::Duration = v
201
- .try_into()
202
- .map_err(|_| "invalid sticky queue schedule to start timeout".to_string())?;
203
- config.sticky_queue_schedule_to_start_timeout(v);
204
- }
205
- if let Some(v) = req.max_heartbeat_throttle_interval {
206
- let v: std::time::Duration = v
207
- .try_into()
208
- .map_err(|_| "invalid max heartbeat throttle interval".to_string())?;
209
- config.max_heartbeat_throttle_interval(v);
210
- }
211
- if let Some(v) = req.default_heartbeat_throttle_interval {
212
- let v: std::time::Duration = v
213
- .try_into()
214
- .map_err(|_| "invalid default heartbeat throttle interval".to_string())?;
215
- config.default_heartbeat_throttle_interval(v);
216
- }
217
- config
218
- .build()
219
- .map_err(|err| format!("invalid request: {}", err))
220
- }
221
- }
@@ -1,210 +0,0 @@
1
- syntax = "proto3";
2
-
3
- package coresdk.bridge;
4
-
5
- import "google/protobuf/duration.proto";
6
- import "google/protobuf/timestamp.proto";
7
- import "google/protobuf/wrappers.proto";
8
- import "temporal/sdk/core/core_interface.proto";
9
- import "temporal/sdk/core/activity_task/activity_task.proto";
10
- import "temporal/sdk/core/workflow_activation/workflow_activation.proto";
11
- import "temporal/sdk/core/workflow_completion/workflow_completion.proto";
12
-
13
- enum LogLevel {
14
- LOG_LEVEL_UNSPECIFIED = 0;
15
- OFF = 1;
16
- ERROR = 2;
17
- WARN = 3;
18
- INFO = 4;
19
- DEBUG = 5;
20
- TRACE = 6;
21
- }
22
-
23
- message InitTelemetryRequest {
24
- string tracing_filter = 1;
25
- oneof logging {
26
- ConsoleLoggerOptions console = 2;
27
- ForwardLoggerOptions forward = 3;
28
- };
29
-
30
- oneof tracing {
31
- OtelCollectorOptions otel_tracing = 4;
32
- }
33
-
34
- oneof metrics {
35
- OtelCollectorOptions otel_metrics = 5;
36
- PrometheusOptions prometheus = 6;
37
- }
38
-
39
- message ConsoleLoggerOptions {}
40
- message ForwardLoggerOptions {
41
- LogLevel level = 1;
42
- }
43
-
44
- message OtelCollectorOptions {
45
- string url = 1;
46
- map<string, string> headers = 2;
47
- }
48
- message PrometheusOptions {
49
- string export_bind_address = 1;
50
- }
51
- }
52
-
53
- message CreateClientRequest {
54
- string target_url = 1;
55
- string namespace = 2;
56
- string client_name = 3;
57
- string client_version = 4;
58
- string identity = 6;
59
- TlsConfig tls_config = 8;
60
- RetryConfig retry_config = 9;
61
-
62
- message TlsConfig {
63
- bytes server_root_ca_cert = 1;
64
- string domain = 2;
65
- bytes client_cert = 3;
66
- bytes client_private_key = 4;
67
- }
68
-
69
- message RetryConfig {
70
- google.protobuf.Duration initial_interval = 1;
71
- google.protobuf.DoubleValue randomization_factor = 2;
72
- google.protobuf.DoubleValue multiplier = 3;
73
- google.protobuf.Duration max_interval = 4;
74
- google.protobuf.Duration max_elapsed_time = 5;
75
- google.protobuf.UInt32Value max_retries = 6;
76
- }
77
- }
78
-
79
- message InitResponse {
80
- Error error = 1;
81
-
82
- message Error {
83
- string message = 1;
84
- }
85
- }
86
-
87
- message CreateWorkerRequest {
88
- string task_queue = 1;
89
- google.protobuf.UInt32Value max_cached_workflows = 2;
90
- google.protobuf.UInt32Value max_outstanding_workflow_tasks = 3;
91
- google.protobuf.UInt32Value max_outstanding_activities = 4;
92
- google.protobuf.UInt32Value max_outstanding_local_activities = 5;
93
- google.protobuf.UInt32Value max_concurrent_wft_polls = 6;
94
- google.protobuf.FloatValue nonsticky_to_sticky_poll_ratio = 7;
95
- google.protobuf.UInt32Value max_concurrent_at_polls = 8;
96
- bool no_remote_activities = 9;
97
- google.protobuf.Duration sticky_queue_schedule_to_start_timeout = 10;
98
- google.protobuf.Duration max_heartbeat_throttle_interval = 11;
99
- google.protobuf.Duration default_heartbeat_throttle_interval = 12;
100
- }
101
-
102
- message RegisterWorkerResponse {
103
- Error error = 1;
104
-
105
- message Error {
106
- string message = 1;
107
- }
108
- }
109
-
110
- message PollWorkflowActivationRequest {
111
- }
112
-
113
- message PollWorkflowActivationResponse {
114
- oneof response {
115
- coresdk.workflow_activation.WorkflowActivation activation = 1;
116
- Error error = 2;
117
- }
118
-
119
- message Error {
120
- string message = 1;
121
- bool shutdown = 2;
122
- }
123
- }
124
-
125
- message PollActivityTaskRequest {
126
- }
127
-
128
- message PollActivityTaskResponse {
129
- oneof response {
130
- coresdk.activity_task.ActivityTask task = 1;
131
- Error error = 2;
132
- }
133
-
134
- message Error {
135
- string message = 1;
136
- bool shutdown = 2;
137
- }
138
- }
139
-
140
- message CompleteWorkflowActivationRequest {
141
- coresdk.workflow_completion.WorkflowActivationCompletion completion = 1;
142
- }
143
-
144
- message CompleteWorkflowActivationResponse {
145
- Error error = 1;
146
-
147
- message Error {
148
- string message = 1;
149
- }
150
- }
151
-
152
- message CompleteActivityTaskRequest {
153
- coresdk.ActivityTaskCompletion completion = 1;
154
- }
155
-
156
- message CompleteActivityTaskResponse {
157
- Error error = 1;
158
-
159
- message Error {
160
- string message = 1;
161
- }
162
- }
163
-
164
- message RecordActivityHeartbeatRequest {
165
- coresdk.ActivityHeartbeat heartbeat = 1;
166
- }
167
-
168
- message RecordActivityHeartbeatResponse {
169
- Error error = 1;
170
-
171
- message Error {
172
- string message = 1;
173
- }
174
- }
175
-
176
- message RequestWorkflowEvictionRequest {
177
- string run_id = 1;
178
- }
179
-
180
- message RequestWorkflowEvictionResponse {
181
- Error error = 1;
182
-
183
- message Error {
184
- string message = 1;
185
- }
186
- }
187
-
188
- message ShutdownWorkerRequest {
189
- }
190
-
191
- message ShutdownWorkerResponse {
192
- Error error = 1;
193
-
194
- message Error {
195
- string message = 1;
196
- }
197
- }
198
-
199
- message FetchBufferedLogsRequest {
200
- }
201
-
202
- message FetchBufferedLogsResponse {
203
- repeated LogEntry entries = 1;
204
-
205
- message LogEntry {
206
- string message = 1;
207
- google.protobuf.Timestamp timestamp = 2;
208
- LogLevel level = 3;
209
- }
210
- }
@@ -1,8 +0,0 @@
1
- use temporal_sdk_core_protos::temporal::api::failure::v1::Failure;
2
-
3
- pub(crate) fn anyhow_to_fail(e: anyhow::Error) -> Failure {
4
- Failure {
5
- message: e.to_string(),
6
- ..Default::default()
7
- }
8
- }