File tree 19 files changed +40
-25
lines changed
19 files changed +40
-25
lines changed Original file line number Diff line number Diff line change @@ -30,7 +30,7 @@ require (
30
30
github.com/google/uuid v1.6.0 // indirect
31
31
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
32
32
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
33
- github.com/nexus-rpc/sdk-go v0.0.11 // indirect
33
+ github.com/nexus-rpc/sdk-go v0.0.12 // indirect
34
34
github.com/outcaste-io/ristretto v0.2.3 // indirect
35
35
github.com/pborman/uuid v1.2.1 // indirect
36
36
github.com/philhofer/fwd v1.1.2 // indirect
Original file line number Diff line number Diff line change @@ -85,8 +85,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
85
85
github.com/kr/text v0.1.0 /go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI =
86
86
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY =
87
87
github.com/kr/text v0.2.0 /go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE =
88
- github.com/nexus-rpc/sdk-go v0.0.11 h1:qH3Us3spfp50t5ca775V1va2eE6z1zMQDZY4mvbw0CI =
89
- github.com/nexus-rpc/sdk-go v0.0.11 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
88
+ github.com/nexus-rpc/sdk-go v0.0.12 h1:Bsjo3aKIaApgi/eohhzufwrAeK/sEphcbeZM1Z7S/nI =
89
+ github.com/nexus-rpc/sdk-go v0.0.12 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
90
90
github.com/opentracing/opentracing-go v1.1.0 /go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o =
91
91
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs =
92
92
github.com/opentracing/opentracing-go v1.2.0 /go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc =
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ require (
13
13
require (
14
14
github.com/go-logr/logr v1.4.1 // indirect
15
15
github.com/go-logr/stdr v1.2.2 // indirect
16
- github.com/nexus-rpc/sdk-go v0.0.11 // indirect
16
+ github.com/nexus-rpc/sdk-go v0.0.12 // indirect
17
17
golang.org/x/sync v0.8.0 // indirect
18
18
)
19
19
Original file line number Diff line number Diff line change @@ -52,8 +52,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
52
52
github.com/kr/text v0.1.0 /go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI =
53
53
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY =
54
54
github.com/kr/text v0.2.0 /go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE =
55
- github.com/nexus-rpc/sdk-go v0.0.11 h1:qH3Us3spfp50t5ca775V1va2eE6z1zMQDZY4mvbw0CI =
56
- github.com/nexus-rpc/sdk-go v0.0.11 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
55
+ github.com/nexus-rpc/sdk-go v0.0.12 h1:Bsjo3aKIaApgi/eohhzufwrAeK/sEphcbeZM1Z7S/nI =
56
+ github.com/nexus-rpc/sdk-go v0.0.12 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
57
57
github.com/opentracing/opentracing-go v1.1.0 /go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o =
58
58
github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw =
59
59
github.com/pborman/uuid v1.2.1 /go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k =
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ require (
18
18
github.com/google/uuid v1.6.0 // indirect
19
19
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
20
20
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
21
- github.com/nexus-rpc/sdk-go v0.0.11 // indirect
21
+ github.com/nexus-rpc/sdk-go v0.0.12 // indirect
22
22
github.com/pborman/uuid v1.2.1 // indirect
23
23
github.com/pmezard/go-difflib v1.0.0 // indirect
24
24
github.com/robfig/cron v1.2.0 // indirect
Original file line number Diff line number Diff line change @@ -47,8 +47,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
47
47
github.com/kr/text v0.1.0 /go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI =
48
48
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY =
49
49
github.com/kr/text v0.2.0 /go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE =
50
- github.com/nexus-rpc/sdk-go v0.0.11 h1:qH3Us3spfp50t5ca775V1va2eE6z1zMQDZY4mvbw0CI =
51
- github.com/nexus-rpc/sdk-go v0.0.11 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
50
+ github.com/nexus-rpc/sdk-go v0.0.12 h1:Bsjo3aKIaApgi/eohhzufwrAeK/sEphcbeZM1Z7S/nI =
51
+ github.com/nexus-rpc/sdk-go v0.0.12 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
52
52
github.com/opentracing/opentracing-go v1.1.0 /go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o =
53
53
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs =
54
54
github.com/opentracing/opentracing-go v1.2.0 /go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc =
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ require (
25
25
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
26
26
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
27
27
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
28
- github.com/nexus-rpc/sdk-go v0.0.11 // indirect
28
+ github.com/nexus-rpc/sdk-go v0.0.12 // indirect
29
29
github.com/opencontainers/runtime-spec v1.0.2 // indirect
30
30
github.com/pborman/uuid v1.2.1 // indirect
31
31
github.com/pmezard/go-difflib v1.0.0 // indirect
Original file line number Diff line number Diff line change @@ -62,8 +62,8 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
62
62
github.com/kr/text v0.2.0 /go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE =
63
63
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4 =
64
64
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 /go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I =
65
- github.com/nexus-rpc/sdk-go v0.0.11 h1:qH3Us3spfp50t5ca775V1va2eE6z1zMQDZY4mvbw0CI =
66
- github.com/nexus-rpc/sdk-go v0.0.11 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
65
+ github.com/nexus-rpc/sdk-go v0.0.12 h1:Bsjo3aKIaApgi/eohhzufwrAeK/sEphcbeZM1Z7S/nI =
66
+ github.com/nexus-rpc/sdk-go v0.0.12 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
67
67
github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0 =
68
68
github.com/opencontainers/runtime-spec v1.0.2 /go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0 =
69
69
github.com/opentracing/opentracing-go v1.1.0 /go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o =
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ require (
18
18
github.com/google/uuid v1.6.0 // indirect
19
19
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
20
20
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
21
- github.com/nexus-rpc/sdk-go v0.0.11 // indirect
21
+ github.com/nexus-rpc/sdk-go v0.0.12 // indirect
22
22
github.com/pborman/uuid v1.2.1 // indirect
23
23
github.com/pmezard/go-difflib v1.0.0 // indirect
24
24
github.com/robfig/cron v1.2.0 // indirect
Original file line number Diff line number Diff line change @@ -92,8 +92,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
92
92
github.com/modern-go/reflect2 v1.0.1 /go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0 =
93
93
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 /go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U =
94
94
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f /go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U =
95
- github.com/nexus-rpc/sdk-go v0.0.11 h1:qH3Us3spfp50t5ca775V1va2eE6z1zMQDZY4mvbw0CI =
96
- github.com/nexus-rpc/sdk-go v0.0.11 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
95
+ github.com/nexus-rpc/sdk-go v0.0.12 h1:Bsjo3aKIaApgi/eohhzufwrAeK/sEphcbeZM1Z7S/nI =
96
+ github.com/nexus-rpc/sdk-go v0.0.12 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
97
97
github.com/opentracing/opentracing-go v1.1.0 /go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o =
98
98
github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw =
99
99
github.com/pborman/uuid v1.2.1 /go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k =
Original file line number Diff line number Diff line change @@ -9,7 +9,7 @@ require (
9
9
github.com/gogo/protobuf v1.3.2
10
10
github.com/golang/mock v1.6.0
11
11
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
12
- github.com/nexus-rpc/sdk-go v0.0.11
12
+ github.com/nexus-rpc/sdk-go v0.0.12
13
13
github.com/pborman/uuid v1.2.1
14
14
github.com/robfig/cron v1.2.0
15
15
github.com/stretchr/testify v1.9.0
Original file line number Diff line number Diff line change @@ -47,8 +47,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
47
47
github.com/kr/text v0.1.0 /go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI =
48
48
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY =
49
49
github.com/kr/text v0.2.0 /go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE =
50
- github.com/nexus-rpc/sdk-go v0.0.11 h1:qH3Us3spfp50t5ca775V1va2eE6z1zMQDZY4mvbw0CI =
51
- github.com/nexus-rpc/sdk-go v0.0.11 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
50
+ github.com/nexus-rpc/sdk-go v0.0.12 h1:Bsjo3aKIaApgi/eohhzufwrAeK/sEphcbeZM1Z7S/nI =
51
+ github.com/nexus-rpc/sdk-go v0.0.12 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
52
52
github.com/opentracing/opentracing-go v1.1.0 /go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o =
53
53
github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw =
54
54
github.com/pborman/uuid v1.2.1 /go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k =
Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ require (
17
17
github.com/google/uuid v1.6.0 // indirect
18
18
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect
19
19
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
20
- github.com/nexus-rpc/sdk-go v0.0.11 // indirect
20
+ github.com/nexus-rpc/sdk-go v0.0.12 // indirect
21
21
github.com/pborman/uuid v1.2.1 // indirect
22
22
github.com/pmezard/go-difflib v1.0.0 // indirect
23
23
github.com/robfig/cron v1.2.0 // indirect
Original file line number Diff line number Diff line change @@ -51,8 +51,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
51
51
github.com/kr/text v0.1.0 /go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI =
52
52
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY =
53
53
github.com/kr/text v0.2.0 /go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE =
54
- github.com/nexus-rpc/sdk-go v0.0.11 h1:qH3Us3spfp50t5ca775V1va2eE6z1zMQDZY4mvbw0CI =
55
- github.com/nexus-rpc/sdk-go v0.0.11 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
54
+ github.com/nexus-rpc/sdk-go v0.0.12 h1:Bsjo3aKIaApgi/eohhzufwrAeK/sEphcbeZM1Z7S/nI =
55
+ github.com/nexus-rpc/sdk-go v0.0.12 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
56
56
github.com/opentracing/opentracing-go v1.1.0 /go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o =
57
57
github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw =
58
58
github.com/pborman/uuid v1.2.1 /go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k =
Original file line number Diff line number Diff line change @@ -338,6 +338,9 @@ var (
338
338
339
339
// ErrSkipScheduleUpdate is used by a user if they want to skip updating a schedule.
340
340
ErrSkipScheduleUpdate = errors .New ("skip schedule update" )
341
+
342
+ // ErrMissingWorkflowID is returned when trying to start an async Nexus operation but no workflow ID is set on the request.
343
+ ErrMissingWorkflowID = errors .New ("workflow ID is unset for Nexus operation" )
341
344
)
342
345
343
346
// NewApplicationError create new instance of *ApplicationError with message, type, and optional details.
Original file line number Diff line number Diff line change @@ -203,6 +203,9 @@ func (o *workflowRunOperation[I, O]) Name() string {
203
203
return o .options .Name
204
204
}
205
205
206
+ // Start begins an async Nexus operation backed by a workflow.
207
+ // The Operation ID returned in the response should not be modified because it is used for cancelation and reporting
208
+ // completion.
206
209
func (o * workflowRunOperation [I , O ]) Start (
207
210
ctx context.Context ,
208
211
input I ,
@@ -324,12 +327,21 @@ func ExecuteUntypedWorkflow[R any](
324
327
if startWorkflowOptions .TaskQueue == "" {
325
328
startWorkflowOptions .TaskQueue = nctx .TaskQueue
326
329
}
330
+ if startWorkflowOptions .ID == "" {
331
+ return nil , internal .ErrMissingWorkflowID
332
+ }
327
333
328
334
if nexusOptions .RequestID != "" {
329
335
internal .SetRequestIDOnStartWorkflowOptions (& startWorkflowOptions , nexusOptions .RequestID )
330
336
}
331
337
332
338
if nexusOptions .CallbackURL != "" {
339
+ if nexusOptions .CallbackHeader == nil {
340
+ nexusOptions .CallbackHeader = make (nexus.Header )
341
+ }
342
+ if idHeader := nexusOptions .CallbackHeader .Get (nexus .HeaderOperationID ); idHeader == "" {
343
+ nexusOptions .CallbackHeader .Set (nexus .HeaderOperationID , startWorkflowOptions .ID )
344
+ }
333
345
internal .SetCallbacksOnStartWorkflowOptions (& startWorkflowOptions , []* common.Callback {
334
346
{
335
347
Variant : & common.Callback_Nexus_ {
Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ toolchain go1.21.1
7
7
require (
8
8
github.com/golang/mock v1.6.0
9
9
github.com/google/uuid v1.6.0
10
- github.com/nexus-rpc/sdk-go v0.0.11
10
+ github.com/nexus-rpc/sdk-go v0.0.12
11
11
github.com/opentracing/opentracing-go v1.2.0
12
12
github.com/pborman/uuid v1.2.1
13
13
github.com/stretchr/testify v1.9.0
Original file line number Diff line number Diff line change @@ -112,8 +112,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
112
112
github.com/modern-go/reflect2 v1.0.1 /go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0 =
113
113
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 /go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U =
114
114
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f /go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U =
115
- github.com/nexus-rpc/sdk-go v0.0.11 h1:qH3Us3spfp50t5ca775V1va2eE6z1zMQDZY4mvbw0CI =
116
- github.com/nexus-rpc/sdk-go v0.0.11 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
115
+ github.com/nexus-rpc/sdk-go v0.0.12 h1:Bsjo3aKIaApgi/eohhzufwrAeK/sEphcbeZM1Z7S/nI =
116
+ github.com/nexus-rpc/sdk-go v0.0.12 /go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ =
117
117
github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0 =
118
118
github.com/opencontainers/runtime-spec v1.0.2 /go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0 =
119
119
github.com/opentracing/opentracing-go v1.1.0 /go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o =
Original file line number Diff line number Diff line change @@ -406,7 +406,7 @@ func TestNexusWorkflowRunOperation(t *testing.T) {
406
406
callback , ok := desc .Callbacks [0 ].Callback .Variant .(* common.Callback_Nexus_ )
407
407
require .True (t , ok )
408
408
require .Equal (t , "http://localhost/test" , callback .Nexus .Url )
409
- require .Equal (t , map [string ]string {"test" : "ok" }, callback . Nexus . Header )
409
+ require .Subset (t , callback . Nexus . Header , map [string ]string {"test" : "ok" })
410
410
411
411
run := tc .client .GetWorkflow (ctx , workflowID , "" )
412
412
require .NoError (t , handle .Cancel (ctx , nexus.CancelOperationOptions {}))
You can’t perform that action at this time.
0 commit comments