@temporalio/core-bridge 1.11.0 → 1.11.2
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.
- package/Cargo.lock +86 -88
- package/lib/index.d.ts +3 -0
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
- package/releases/aarch64-apple-darwin/index.node +0 -0
- package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
- package/releases/x86_64-apple-darwin/index.node +0 -0
- package/releases/x86_64-pc-windows-msvc/index.node +0 -0
- package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
- package/sdk-core/.github/workflows/per-pr.yml +7 -1
- package/sdk-core/Cargo.toml +1 -1
- package/sdk-core/client/Cargo.toml +3 -3
- package/sdk-core/client/src/lib.rs +1 -1
- package/sdk-core/client/src/metrics.rs +2 -2
- package/sdk-core/client/src/raw.rs +39 -13
- package/sdk-core/client/src/retry.rs +108 -62
- package/sdk-core/client/src/workflow_handle/mod.rs +1 -2
- package/sdk-core/core/Cargo.toml +4 -5
- package/sdk-core/core/src/abstractions.rs +2 -3
- package/sdk-core/core/src/core_tests/activity_tasks.rs +1 -1
- package/sdk-core/core/src/core_tests/local_activities.rs +2 -2
- package/sdk-core/core/src/core_tests/queries.rs +8 -4
- package/sdk-core/core/src/core_tests/updates.rs +2 -2
- package/sdk-core/core/src/core_tests/workflow_cancels.rs +3 -3
- package/sdk-core/core/src/core_tests/workflow_tasks.rs +55 -54
- package/sdk-core/core/src/ephemeral_server/mod.rs +5 -3
- package/sdk-core/core/src/protosext/mod.rs +3 -0
- package/sdk-core/core/src/telemetry/mod.rs +0 -8
- package/sdk-core/core/src/telemetry/otel.rs +7 -3
- package/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +11 -0
- package/sdk-core/core/src/worker/activities.rs +1 -1
- package/sdk-core/core/src/worker/mod.rs +6 -6
- package/sdk-core/core/src/worker/slot_provider.rs +4 -3
- package/sdk-core/core/src/worker/tuner/resource_based.rs +1 -1
- package/sdk-core/core/src/worker/workflow/driven_workflow.rs +28 -2
- package/sdk-core/core/src/worker/workflow/history_update.rs +2 -2
- package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +8 -5
- package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +1 -1
- package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +1 -1
- package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +7 -7
- package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +10 -15
- package/sdk-core/core/src/worker/workflow/machines/mod.rs +1 -1
- package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +3 -2
- package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +1 -1
- package/sdk-core/core/src/worker/workflow/machines/update_state_machine.rs +4 -4
- package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +30 -20
- package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +2 -2
- package/sdk-core/core/src/worker/workflow/managed_run.rs +20 -4
- package/sdk-core/core/src/worker/workflow/mod.rs +33 -29
- package/sdk-core/core/src/worker/workflow/workflow_stream.rs +2 -2
- package/sdk-core/core-api/src/telemetry.rs +1 -0
- package/sdk-core/docker/docker-compose-telem.yaml +4 -4
- package/sdk-core/etc/otel-collector-config.yaml +12 -9
- package/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +2 -2
- package/sdk-core/sdk/src/lib.rs +30 -3
- package/sdk-core/sdk/src/workflow_context.rs +15 -2
- package/sdk-core/sdk/src/workflow_future.rs +28 -8
- package/sdk-core/sdk-core-protos/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +31 -12
- package/sdk-core/sdk-core-protos/src/lib.rs +104 -63
- package/sdk-core/test-utils/src/lib.rs +4 -3
- package/sdk-core/tests/integ_tests/client_tests.rs +36 -7
- package/sdk-core/tests/integ_tests/heartbeat_tests.rs +1 -1
- package/sdk-core/tests/integ_tests/metrics_tests.rs +50 -4
- package/sdk-core/tests/integ_tests/queries_tests.rs +95 -62
- package/sdk-core/tests/integ_tests/update_tests.rs +16 -9
- package/sdk-core/tests/integ_tests/visibility_tests.rs +1 -1
- package/sdk-core/tests/integ_tests/worker_tests.rs +82 -1
- package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +46 -8
- package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +81 -2
- package/sdk-core/tests/integ_tests/workflow_tests/resets.rs +139 -4
- package/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +43 -28
- package/sdk-core/tests/integ_tests/workflow_tests.rs +2 -1
- package/sdk-core/tests/main.rs +28 -19
- package/sdk-core/tests/runner.rs +7 -2
- package/ts/index.ts +3 -0
package/Cargo.lock
CHANGED
|
@@ -143,7 +143,7 @@ dependencies = [
|
|
|
143
143
|
"rustversion",
|
|
144
144
|
"serde",
|
|
145
145
|
"sync_wrapper 1.0.1",
|
|
146
|
-
"tower",
|
|
146
|
+
"tower 0.4.13",
|
|
147
147
|
"tower-layer",
|
|
148
148
|
"tower-service",
|
|
149
149
|
]
|
|
@@ -302,12 +302,6 @@ version = "0.3.0"
|
|
|
302
302
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
303
303
|
checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
|
|
304
304
|
|
|
305
|
-
[[package]]
|
|
306
|
-
name = "convert_case"
|
|
307
|
-
version = "0.4.0"
|
|
308
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
309
|
-
checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
|
|
310
|
-
|
|
311
305
|
[[package]]
|
|
312
306
|
name = "core-foundation"
|
|
313
307
|
version = "0.9.4"
|
|
@@ -366,25 +360,6 @@ dependencies = [
|
|
|
366
360
|
"crossbeam-utils",
|
|
367
361
|
]
|
|
368
362
|
|
|
369
|
-
[[package]]
|
|
370
|
-
name = "crossbeam-deque"
|
|
371
|
-
version = "0.8.5"
|
|
372
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
373
|
-
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
|
|
374
|
-
dependencies = [
|
|
375
|
-
"crossbeam-epoch",
|
|
376
|
-
"crossbeam-utils",
|
|
377
|
-
]
|
|
378
|
-
|
|
379
|
-
[[package]]
|
|
380
|
-
name = "crossbeam-epoch"
|
|
381
|
-
version = "0.9.18"
|
|
382
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
383
|
-
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
|
384
|
-
dependencies = [
|
|
385
|
-
"crossbeam-utils",
|
|
386
|
-
]
|
|
387
|
-
|
|
388
363
|
[[package]]
|
|
389
364
|
name = "crossbeam-queue"
|
|
390
365
|
version = "0.3.11"
|
|
@@ -531,15 +506,23 @@ dependencies = [
|
|
|
531
506
|
|
|
532
507
|
[[package]]
|
|
533
508
|
name = "derive_more"
|
|
534
|
-
version = "0.
|
|
509
|
+
version = "1.0.0"
|
|
510
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
511
|
+
checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
|
|
512
|
+
dependencies = [
|
|
513
|
+
"derive_more-impl",
|
|
514
|
+
]
|
|
515
|
+
|
|
516
|
+
[[package]]
|
|
517
|
+
name = "derive_more-impl"
|
|
518
|
+
version = "1.0.0"
|
|
535
519
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
536
|
-
checksum = "
|
|
520
|
+
checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
|
|
537
521
|
dependencies = [
|
|
538
|
-
"convert_case",
|
|
539
522
|
"proc-macro2",
|
|
540
523
|
"quote",
|
|
541
|
-
"rustc_version",
|
|
542
524
|
"syn 2.0.72",
|
|
525
|
+
"unicode-xid",
|
|
543
526
|
]
|
|
544
527
|
|
|
545
528
|
[[package]]
|
|
@@ -1017,7 +1000,7 @@ dependencies = [
|
|
|
1017
1000
|
"pin-project-lite",
|
|
1018
1001
|
"socket2",
|
|
1019
1002
|
"tokio",
|
|
1020
|
-
"tower",
|
|
1003
|
+
"tower 0.4.13",
|
|
1021
1004
|
"tower-service",
|
|
1022
1005
|
"tracing",
|
|
1023
1006
|
]
|
|
@@ -1240,14 +1223,13 @@ dependencies = [
|
|
|
1240
1223
|
|
|
1241
1224
|
[[package]]
|
|
1242
1225
|
name = "mockall"
|
|
1243
|
-
version = "0.
|
|
1226
|
+
version = "0.13.0"
|
|
1244
1227
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1245
|
-
checksum = "
|
|
1228
|
+
checksum = "d4c28b3fb6d753d28c20e826cd46ee611fda1cf3cde03a443a974043247c065a"
|
|
1246
1229
|
dependencies = [
|
|
1247
1230
|
"cfg-if",
|
|
1248
1231
|
"downcast",
|
|
1249
1232
|
"fragile",
|
|
1250
|
-
"lazy_static",
|
|
1251
1233
|
"mockall_derive",
|
|
1252
1234
|
"predicates",
|
|
1253
1235
|
"predicates-tree",
|
|
@@ -1255,9 +1237,9 @@ dependencies = [
|
|
|
1255
1237
|
|
|
1256
1238
|
[[package]]
|
|
1257
1239
|
name = "mockall_derive"
|
|
1258
|
-
version = "0.
|
|
1240
|
+
version = "0.13.0"
|
|
1259
1241
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1260
|
-
checksum = "
|
|
1242
|
+
checksum = "341014e7f530314e9a1fdbc7400b244efea7122662c96bfa248c31da5bfb2020"
|
|
1261
1243
|
dependencies = [
|
|
1262
1244
|
"cfg-if",
|
|
1263
1245
|
"proc-macro2",
|
|
@@ -1280,7 +1262,7 @@ dependencies = [
|
|
|
1280
1262
|
"neon-build",
|
|
1281
1263
|
"neon-macros",
|
|
1282
1264
|
"neon-runtime",
|
|
1283
|
-
"semver
|
|
1265
|
+
"semver",
|
|
1284
1266
|
"smallvec",
|
|
1285
1267
|
]
|
|
1286
1268
|
|
|
@@ -1870,26 +1852,6 @@ dependencies = [
|
|
|
1870
1852
|
"bitflags 2.6.0",
|
|
1871
1853
|
]
|
|
1872
1854
|
|
|
1873
|
-
[[package]]
|
|
1874
|
-
name = "rayon"
|
|
1875
|
-
version = "1.10.0"
|
|
1876
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1877
|
-
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
|
|
1878
|
-
dependencies = [
|
|
1879
|
-
"either",
|
|
1880
|
-
"rayon-core",
|
|
1881
|
-
]
|
|
1882
|
-
|
|
1883
|
-
[[package]]
|
|
1884
|
-
name = "rayon-core"
|
|
1885
|
-
version = "1.12.1"
|
|
1886
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1887
|
-
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
|
|
1888
|
-
dependencies = [
|
|
1889
|
-
"crossbeam-deque",
|
|
1890
|
-
"crossbeam-utils",
|
|
1891
|
-
]
|
|
1892
|
-
|
|
1893
1855
|
[[package]]
|
|
1894
1856
|
name = "redox_syscall"
|
|
1895
1857
|
version = "0.4.1"
|
|
@@ -2032,15 +1994,6 @@ version = "2.0.0"
|
|
|
2032
1994
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2033
1995
|
checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
|
|
2034
1996
|
|
|
2035
|
-
[[package]]
|
|
2036
|
-
name = "rustc_version"
|
|
2037
|
-
version = "0.4.0"
|
|
2038
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2039
|
-
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
|
|
2040
|
-
dependencies = [
|
|
2041
|
-
"semver 1.0.23",
|
|
2042
|
-
]
|
|
2043
|
-
|
|
2044
1997
|
[[package]]
|
|
2045
1998
|
name = "rustfsm"
|
|
2046
1999
|
version = "0.1.0"
|
|
@@ -2191,12 +2144,6 @@ dependencies = [
|
|
|
2191
2144
|
"semver-parser",
|
|
2192
2145
|
]
|
|
2193
2146
|
|
|
2194
|
-
[[package]]
|
|
2195
|
-
name = "semver"
|
|
2196
|
-
version = "1.0.23"
|
|
2197
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2198
|
-
checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
|
2199
|
-
|
|
2200
2147
|
[[package]]
|
|
2201
2148
|
name = "semver-parser"
|
|
2202
2149
|
version = "0.7.0"
|
|
@@ -2396,16 +2343,14 @@ checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
|
|
|
2396
2343
|
|
|
2397
2344
|
[[package]]
|
|
2398
2345
|
name = "sysinfo"
|
|
2399
|
-
version = "0.
|
|
2346
|
+
version = "0.31.4"
|
|
2400
2347
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2401
|
-
checksum = "
|
|
2348
|
+
checksum = "355dbe4f8799b304b05e1b0f05fc59b2a18d36645cf169607da45bde2f69a1be"
|
|
2402
2349
|
dependencies = [
|
|
2403
|
-
"cfg-if",
|
|
2404
2350
|
"core-foundation-sys",
|
|
2405
2351
|
"libc",
|
|
2352
|
+
"memchr",
|
|
2406
2353
|
"ntapi",
|
|
2407
|
-
"once_cell",
|
|
2408
|
-
"rayon",
|
|
2409
2354
|
"windows",
|
|
2410
2355
|
]
|
|
2411
2356
|
|
|
@@ -2458,7 +2403,7 @@ dependencies = [
|
|
|
2458
2403
|
"thiserror",
|
|
2459
2404
|
"tokio",
|
|
2460
2405
|
"tonic",
|
|
2461
|
-
"tower",
|
|
2406
|
+
"tower 0.5.1",
|
|
2462
2407
|
"tracing",
|
|
2463
2408
|
"url",
|
|
2464
2409
|
"uuid",
|
|
@@ -2742,7 +2687,7 @@ dependencies = [
|
|
|
2742
2687
|
"tokio",
|
|
2743
2688
|
"tokio-rustls",
|
|
2744
2689
|
"tokio-stream",
|
|
2745
|
-
"tower",
|
|
2690
|
+
"tower 0.4.13",
|
|
2746
2691
|
"tower-layer",
|
|
2747
2692
|
"tower-service",
|
|
2748
2693
|
"tracing",
|
|
@@ -2781,17 +2726,31 @@ dependencies = [
|
|
|
2781
2726
|
"tracing",
|
|
2782
2727
|
]
|
|
2783
2728
|
|
|
2729
|
+
[[package]]
|
|
2730
|
+
name = "tower"
|
|
2731
|
+
version = "0.5.1"
|
|
2732
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2733
|
+
checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f"
|
|
2734
|
+
dependencies = [
|
|
2735
|
+
"futures-core",
|
|
2736
|
+
"futures-util",
|
|
2737
|
+
"pin-project-lite",
|
|
2738
|
+
"sync_wrapper 0.1.2",
|
|
2739
|
+
"tower-layer",
|
|
2740
|
+
"tower-service",
|
|
2741
|
+
]
|
|
2742
|
+
|
|
2784
2743
|
[[package]]
|
|
2785
2744
|
name = "tower-layer"
|
|
2786
|
-
version = "0.3.
|
|
2745
|
+
version = "0.3.3"
|
|
2787
2746
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2788
|
-
checksum = "
|
|
2747
|
+
checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
|
|
2789
2748
|
|
|
2790
2749
|
[[package]]
|
|
2791
2750
|
name = "tower-service"
|
|
2792
|
-
version = "0.3.
|
|
2751
|
+
version = "0.3.3"
|
|
2793
2752
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2794
|
-
checksum = "
|
|
2753
|
+
checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
|
|
2795
2754
|
|
|
2796
2755
|
[[package]]
|
|
2797
2756
|
name = "tracing"
|
|
@@ -2799,7 +2758,6 @@ version = "0.1.40"
|
|
|
2799
2758
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2800
2759
|
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
|
|
2801
2760
|
dependencies = [
|
|
2802
|
-
"log",
|
|
2803
2761
|
"pin-project-lite",
|
|
2804
2762
|
"tracing-attributes",
|
|
2805
2763
|
"tracing-core",
|
|
@@ -2919,6 +2877,12 @@ dependencies = [
|
|
|
2919
2877
|
"tinyvec",
|
|
2920
2878
|
]
|
|
2921
2879
|
|
|
2880
|
+
[[package]]
|
|
2881
|
+
name = "unicode-xid"
|
|
2882
|
+
version = "0.2.5"
|
|
2883
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2884
|
+
checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a"
|
|
2885
|
+
|
|
2922
2886
|
[[package]]
|
|
2923
2887
|
name = "untrusted"
|
|
2924
2888
|
version = "0.9.0"
|
|
@@ -3094,9 +3058,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
|
|
3094
3058
|
|
|
3095
3059
|
[[package]]
|
|
3096
3060
|
name = "windows"
|
|
3097
|
-
version = "0.
|
|
3061
|
+
version = "0.57.0"
|
|
3098
3062
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3099
|
-
checksum = "
|
|
3063
|
+
checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143"
|
|
3100
3064
|
dependencies = [
|
|
3101
3065
|
"windows-core",
|
|
3102
3066
|
"windows-targets 0.52.6",
|
|
@@ -3104,9 +3068,43 @@ dependencies = [
|
|
|
3104
3068
|
|
|
3105
3069
|
[[package]]
|
|
3106
3070
|
name = "windows-core"
|
|
3107
|
-
version = "0.
|
|
3071
|
+
version = "0.57.0"
|
|
3072
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3073
|
+
checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
|
|
3074
|
+
dependencies = [
|
|
3075
|
+
"windows-implement",
|
|
3076
|
+
"windows-interface",
|
|
3077
|
+
"windows-result",
|
|
3078
|
+
"windows-targets 0.52.6",
|
|
3079
|
+
]
|
|
3080
|
+
|
|
3081
|
+
[[package]]
|
|
3082
|
+
name = "windows-implement"
|
|
3083
|
+
version = "0.57.0"
|
|
3084
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3085
|
+
checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
|
|
3086
|
+
dependencies = [
|
|
3087
|
+
"proc-macro2",
|
|
3088
|
+
"quote",
|
|
3089
|
+
"syn 2.0.72",
|
|
3090
|
+
]
|
|
3091
|
+
|
|
3092
|
+
[[package]]
|
|
3093
|
+
name = "windows-interface"
|
|
3094
|
+
version = "0.57.0"
|
|
3095
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3096
|
+
checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
|
|
3097
|
+
dependencies = [
|
|
3098
|
+
"proc-macro2",
|
|
3099
|
+
"quote",
|
|
3100
|
+
"syn 2.0.72",
|
|
3101
|
+
]
|
|
3102
|
+
|
|
3103
|
+
[[package]]
|
|
3104
|
+
name = "windows-result"
|
|
3105
|
+
version = "0.1.2"
|
|
3108
3106
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3109
|
-
checksum = "
|
|
3107
|
+
checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
|
|
3110
3108
|
dependencies = [
|
|
3111
3109
|
"windows-targets 0.52.6",
|
|
3112
3110
|
]
|
package/lib/index.d.ts
CHANGED
|
@@ -101,6 +101,9 @@ export interface OtelCollectorExporter {
|
|
|
101
101
|
otel: {
|
|
102
102
|
/**
|
|
103
103
|
* URL of a gRPC OpenTelemetry collector.
|
|
104
|
+
*
|
|
105
|
+
* @format Starts with "grpc://" or "http://" for an unsecured connection (typical), or "grpcs://" or "https://" for a TLS connection.
|
|
106
|
+
* @note The `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable, if set, will override this property.
|
|
104
107
|
*/
|
|
105
108
|
url: string;
|
|
106
109
|
/**
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":";;;AA4kBA,mCAA0E;AAAjE,uGAAA,aAAa,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,yGAAA,eAAe,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@temporalio/core-bridge",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.2",
|
|
4
4
|
"description": "Temporal.io SDK Core<>Node bridge",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"author": "Temporal Technologies Inc. <sdk@temporal.io>",
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@temporalio/common": "1.11.
|
|
25
|
+
"@temporalio/common": "1.11.2",
|
|
26
26
|
"arg": "^5.0.2",
|
|
27
27
|
"cargo-cp-artifact": "^0.1.8",
|
|
28
28
|
"which": "^4.0.0"
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "e78b4f71236ccd3227e674bad68439e961fec639"
|
|
56
56
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -61,8 +61,13 @@ jobs:
|
|
|
61
61
|
name: state-machine-coverage
|
|
62
62
|
path: machine_coverage/
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
integ-tests:
|
|
65
65
|
name: Integ tests
|
|
66
|
+
env:
|
|
67
|
+
TEMPORAL_CLOUD_ADDRESS: https://${{ vars.TEMPORAL_CLIENT_NAMESPACE }}.tmprl.cloud:7233
|
|
68
|
+
TEMPORAL_CLOUD_NAMESPACE: ${{ vars.TEMPORAL_CLIENT_NAMESPACE }}
|
|
69
|
+
TEMPORAL_CLIENT_CERT: ${{ secrets.TEMPORAL_CLIENT_CERT }}
|
|
70
|
+
TEMPORAL_CLIENT_KEY: ${{ secrets.TEMPORAL_CLIENT_KEY }}
|
|
66
71
|
timeout-minutes: 20
|
|
67
72
|
runs-on: ubuntu-latest
|
|
68
73
|
steps:
|
|
@@ -76,5 +81,6 @@ jobs:
|
|
|
76
81
|
# TODO: Upgrade proto once https://github.com/arduino/setup-protoc/issues/99 is fixed
|
|
77
82
|
version: '23.x'
|
|
78
83
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
84
|
+
|
|
79
85
|
- uses: Swatinem/rust-cache@v2
|
|
80
86
|
- run: cargo integ-test
|
package/sdk-core/Cargo.toml
CHANGED
|
@@ -8,7 +8,7 @@ license-file = "LICENSE.txt"
|
|
|
8
8
|
|
|
9
9
|
[workspace.dependencies]
|
|
10
10
|
derive_builder = "0.20"
|
|
11
|
-
derive_more = { version = "0
|
|
11
|
+
derive_more = { version = "1.0", features = ["constructor", "display", "from", "into", "debug"] }
|
|
12
12
|
once_cell = "1.16"
|
|
13
13
|
tonic = "0.12"
|
|
14
14
|
tonic-build = "0.12"
|
|
@@ -19,7 +19,7 @@ async-trait = "0.1"
|
|
|
19
19
|
backoff = "0.4"
|
|
20
20
|
base64 = "0.22"
|
|
21
21
|
derive_builder = { workspace = true }
|
|
22
|
-
derive_more =
|
|
22
|
+
derive_more = { workspace = true }
|
|
23
23
|
futures = "0.3"
|
|
24
24
|
futures-retry = "0.6.0"
|
|
25
25
|
http = "1.1.0"
|
|
@@ -34,7 +34,7 @@ slotmap = "1.0"
|
|
|
34
34
|
thiserror = "1.0"
|
|
35
35
|
tokio = "1.1"
|
|
36
36
|
tonic = { workspace = true, features = ["tls", "tls-roots"] }
|
|
37
|
-
tower = "0.
|
|
37
|
+
tower = { version = "0.5", features = ["util"] }
|
|
38
38
|
tracing = "0.1"
|
|
39
39
|
url = "2.2"
|
|
40
40
|
uuid = { version = "1.1", features = ["v4"] }
|
|
@@ -47,7 +47,7 @@ path = "../core-api"
|
|
|
47
47
|
|
|
48
48
|
[dev-dependencies]
|
|
49
49
|
assert_matches = "1"
|
|
50
|
-
mockall = "0.
|
|
50
|
+
mockall = "0.13"
|
|
51
51
|
|
|
52
52
|
[lints]
|
|
53
53
|
workspace = true
|
|
@@ -206,7 +206,7 @@ impl Default for ClientKeepAliveConfig {
|
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
/// Configuration for retrying requests to the server
|
|
209
|
-
#[derive(Clone, Debug)]
|
|
209
|
+
#[derive(Clone, Debug, PartialEq)]
|
|
210
210
|
pub struct RetryConfig {
|
|
211
211
|
/// initial wait time before the first retry.
|
|
212
212
|
pub initial_interval: Duration,
|
|
@@ -15,8 +15,8 @@ use tower::Service;
|
|
|
15
15
|
/// Used to track context associated with metrics, and record/update them
|
|
16
16
|
// Possible improvement: make generic over some type tag so that methods are only exposed if the
|
|
17
17
|
// appropriate k/vs have already been set.
|
|
18
|
-
#[derive(Clone, derive_more::
|
|
19
|
-
#[debug(
|
|
18
|
+
#[derive(Clone, derive_more::Debug)]
|
|
19
|
+
#[debug("MetricsContext {{ attribs: {kvs:?}, poll_is_long: {poll_is_long} }}")]
|
|
20
20
|
pub(crate) struct MetricsContext {
|
|
21
21
|
meter: Arc<dyn CoreMeter>,
|
|
22
22
|
kvs: MetricAttributes,
|
|
@@ -149,12 +149,12 @@ where
|
|
|
149
149
|
F: FnMut(&mut Self, Request<Req>) -> BoxFuture<'static, Result<Response<Resp>, Status>>,
|
|
150
150
|
F: Send + Sync + Unpin + 'static,
|
|
151
151
|
{
|
|
152
|
-
let
|
|
152
|
+
let info = self.get_call_info(call_name, Some(&req));
|
|
153
153
|
let fact = || {
|
|
154
154
|
let req_clone = req_cloner(&req);
|
|
155
155
|
callfn(self, req_clone)
|
|
156
156
|
};
|
|
157
|
-
let res = Self::make_future_retry(
|
|
157
|
+
let res = Self::make_future_retry(info, fact);
|
|
158
158
|
res.map_err(|(e, _attempt)| e).map_ok(|x| x.0).await
|
|
159
159
|
}
|
|
160
160
|
}
|
|
@@ -318,7 +318,6 @@ impl RawClientLike for Client {
|
|
|
318
318
|
}
|
|
319
319
|
|
|
320
320
|
/// Helper for cloning a tonic request as long as the inner message may be cloned.
|
|
321
|
-
/// We drop extensions, so, lang bridges can't pass those in :shrug:
|
|
322
321
|
fn req_cloner<T: Clone>(cloneme: &Request<T>) -> Request<T> {
|
|
323
322
|
let msg = cloneme.get_ref().clone();
|
|
324
323
|
let mut new_req = Request::new(msg);
|
|
@@ -333,6 +332,7 @@ fn req_cloner<T: Clone>(cloneme: &Request<T>) -> Request<T> {
|
|
|
333
332
|
}
|
|
334
333
|
}
|
|
335
334
|
}
|
|
335
|
+
*new_req.extensions_mut() = cloneme.extensions().clone();
|
|
336
336
|
new_req
|
|
337
337
|
}
|
|
338
338
|
|
|
@@ -359,6 +359,11 @@ impl AttachMetricLabels {
|
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
361
|
|
|
362
|
+
/// A request extension that, when set, should make the [RetryClient] consider this call to be a
|
|
363
|
+
/// [super::retry::CallType::UserLongPoll]
|
|
364
|
+
#[derive(Copy, Clone, Debug)]
|
|
365
|
+
pub(super) struct IsUserLongPoll;
|
|
366
|
+
|
|
362
367
|
// Blanket impl the trait for all raw-client-like things. Since the trait default-implements
|
|
363
368
|
// everything, there's nothing to actually implement.
|
|
364
369
|
impl<RC, T> WorkflowService for RC
|
|
@@ -413,6 +418,15 @@ where
|
|
|
413
418
|
}
|
|
414
419
|
|
|
415
420
|
/// Helps re-declare gRPC client methods
|
|
421
|
+
///
|
|
422
|
+
/// There are two forms:
|
|
423
|
+
///
|
|
424
|
+
/// * The first takes a closure that can modify the request. This is only called once, before the
|
|
425
|
+
/// actual rpc call is made, and before determinations are made about the kind of call (long poll
|
|
426
|
+
/// or not) and retry policy.
|
|
427
|
+
/// * The second takes three closures. The first can modify the request like in the first form.
|
|
428
|
+
/// The second can modify the request and return a value, and is called right before every call
|
|
429
|
+
/// (including on retries). The third is called with the response to the call after it resolves.
|
|
416
430
|
macro_rules! proxy {
|
|
417
431
|
($client_type:tt, $client_meth:ident, $method:ident, $req:ty, $resp:ty $(, $closure:expr)?) => {
|
|
418
432
|
#[doc = concat!("See [", stringify!($client_type), "::", stringify!($method), "]")]
|
|
@@ -420,22 +434,27 @@ macro_rules! proxy {
|
|
|
420
434
|
&mut self,
|
|
421
435
|
request: impl tonic::IntoRequest<$req>,
|
|
422
436
|
) -> BoxFuture<Result<tonic::Response<$resp>, tonic::Status>> {
|
|
437
|
+
#[allow(unused_mut)]
|
|
438
|
+
let mut as_req = request.into_request();
|
|
439
|
+
$( type_closure_arg(&mut as_req, $closure); )*
|
|
423
440
|
#[allow(unused_mut)]
|
|
424
441
|
let fact = |c: &mut Self, mut req: tonic::Request<$req>| {
|
|
425
|
-
$( type_closure_arg(&mut req, $closure); )*
|
|
426
442
|
let mut c = c.$client_meth().clone();
|
|
427
443
|
async move { c.$method(req).await }.boxed()
|
|
428
444
|
};
|
|
429
|
-
self.call(stringify!($method), fact,
|
|
445
|
+
self.call(stringify!($method), fact, as_req)
|
|
430
446
|
}
|
|
431
447
|
};
|
|
432
448
|
($client_type:tt, $client_meth:ident, $method:ident, $req:ty, $resp:ty,
|
|
433
|
-
$closure_before:expr, $closure_after:expr) => {
|
|
449
|
+
$closure_request:expr, $closure_before:expr, $closure_after:expr) => {
|
|
434
450
|
#[doc = concat!("See [", stringify!($client_type), "::", stringify!($method), "]")]
|
|
435
451
|
fn $method(
|
|
436
452
|
&mut self,
|
|
437
453
|
request: impl tonic::IntoRequest<$req>,
|
|
438
454
|
) -> BoxFuture<Result<tonic::Response<$resp>, tonic::Status>> {
|
|
455
|
+
#[allow(unused_mut)]
|
|
456
|
+
let mut as_req = request.into_request();
|
|
457
|
+
type_closure_arg(&mut as_req, $closure_request);
|
|
439
458
|
#[allow(unused_mut)]
|
|
440
459
|
let fact = |c: &mut Self, mut req: tonic::Request<$req>| {
|
|
441
460
|
let data = type_closure_two_arg(&mut req, c.get_workers_info().unwrap(),
|
|
@@ -445,13 +464,14 @@ macro_rules! proxy {
|
|
|
445
464
|
type_closure_two_arg(c.$method(req).await, data, $closure_after)
|
|
446
465
|
}.boxed()
|
|
447
466
|
};
|
|
448
|
-
self.call(stringify!($method), fact,
|
|
467
|
+
self.call(stringify!($method), fact, as_req)
|
|
449
468
|
}
|
|
450
469
|
};
|
|
451
470
|
}
|
|
452
471
|
macro_rules! proxier {
|
|
453
472
|
( $trait_name:ident; $impl_list_name:ident; $client_type:tt; $client_meth:ident;
|
|
454
|
-
$(($method:ident, $req:ty, $resp:ty
|
|
473
|
+
$(($method:ident, $req:ty, $resp:ty
|
|
474
|
+
$(, $closure:expr $(, $closure_before:expr, $closure_after:expr)?)? );)* ) => {
|
|
455
475
|
#[cfg(test)]
|
|
456
476
|
const $impl_list_name: &'static [&'static str] = &[$(stringify!($method)),*];
|
|
457
477
|
/// Trait version of the generated client with modifications to attach appropriate metric
|
|
@@ -470,7 +490,7 @@ macro_rules! proxier {
|
|
|
470
490
|
{
|
|
471
491
|
$(
|
|
472
492
|
proxy!($client_type, $client_meth, $method, $req, $resp
|
|
473
|
-
$(,$closure $(,$closure_after)*)*);
|
|
493
|
+
$(,$closure $(,$closure_before, $closure_after)*)*);
|
|
474
494
|
)*
|
|
475
495
|
}
|
|
476
496
|
};
|
|
@@ -548,15 +568,18 @@ proxier! {
|
|
|
548
568
|
start_workflow_execution,
|
|
549
569
|
StartWorkflowExecutionRequest,
|
|
550
570
|
StartWorkflowExecutionResponse,
|
|
551
|
-
|r
|
|
552
|
-
let mut slot: Option<Box<dyn Slot + Send>> = None;
|
|
571
|
+
|r| {
|
|
553
572
|
let mut labels = namespaced_request!(r);
|
|
554
573
|
labels.task_q(r.get_ref().task_queue.clone());
|
|
555
574
|
r.extensions_mut().insert(labels);
|
|
575
|
+
},
|
|
576
|
+
|r, workers| {
|
|
577
|
+
let mut slot: Option<Box<dyn Slot + Send>> = None;
|
|
556
578
|
let req_mut = r.get_mut();
|
|
557
579
|
if req_mut.request_eager_execution {
|
|
558
580
|
let namespace = req_mut.namespace.clone();
|
|
559
|
-
let task_queue = req_mut.task_queue.
|
|
581
|
+
let task_queue = req_mut.task_queue.as_ref()
|
|
582
|
+
.map(|tq| tq.name.clone()).unwrap_or_default();
|
|
560
583
|
match workers.try_reserve_wft_slot(namespace, task_queue) {
|
|
561
584
|
Some(s) => slot = Some(s),
|
|
562
585
|
None => req_mut.request_eager_execution = false
|
|
@@ -586,6 +609,9 @@ proxier! {
|
|
|
586
609
|
|r| {
|
|
587
610
|
let labels = namespaced_request!(r);
|
|
588
611
|
r.extensions_mut().insert(labels);
|
|
612
|
+
if r.get_ref().wait_new_event {
|
|
613
|
+
r.extensions_mut().insert(IsUserLongPoll);
|
|
614
|
+
}
|
|
589
615
|
if r.get_ref().wait_new_event {
|
|
590
616
|
r.set_default_timeout(LONG_POLL_TIMEOUT);
|
|
591
617
|
}
|
|
@@ -981,7 +1007,7 @@ proxier! {
|
|
|
981
1007
|
GetWorkerTaskReachabilityRequest,
|
|
982
1008
|
GetWorkerTaskReachabilityResponse,
|
|
983
1009
|
|r| {
|
|
984
|
-
let
|
|
1010
|
+
let labels = namespaced_request!(r);
|
|
985
1011
|
r.extensions_mut().insert(labels);
|
|
986
1012
|
}
|
|
987
1013
|
);
|