Skip to content

Commit f4e51a4

Browse files
committed
Hook to ask implementation to determine if it supports regions
1 parent 58ec02d commit f4e51a4

11 files changed

Lines changed: 183 additions & 78 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ require (
4343
github.com/smartcontractkit/chain-selectors v1.0.89
4444
github.com/smartcontractkit/chainlink-common/pkg/chipingress v0.0.10
4545
github.com/smartcontractkit/chainlink-protos/billing/go v0.0.0-20251024234028-0988426d98f4
46-
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260427170224-3b3204904066
46+
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260430144057-afff7a89f947
4747
github.com/smartcontractkit/chainlink-protos/linking-service/go v0.0.0-20251002192024-d2ad9222409b
4848
github.com/smartcontractkit/chainlink-protos/node-platform v0.0.0-20260205130626-db2a2aab956b
4949
github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0

go.sum

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/capabilities/v2/actions/confidentialworkflow/client.pb.go

Lines changed: 75 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/capabilities/v2/actions/confidentialworkflow/server/client_server_gen.go

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/workflows/host/requirement_selecting_module.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,12 @@ func (r *requirementSelectingModule) Execute(ctx context.Context, request *sdk.E
7777
}
7878

7979
for i, sub := range result.GetTriggerSubscriptions().GetSubscriptions() {
80-
if sub.Requirements == nil || CheckRequirements(r.main.RequirementsHandler, sub.Requirements) {
80+
if sub.Requirements == nil || CheckRequirements(ctx, r.main.RequirementsHandler, sub.Requirements) {
8181
continue
8282
}
8383
matched := false
8484
for j, m := range r.additional {
85-
if CheckRequirements(m.RequirementsHandler, sub.Requirements) {
85+
if CheckRequirements(ctx, m.RequirementsHandler, sub.Requirements) {
8686
m.ensureStarted()
8787
r.cache.Store(uint64(i), j)
8888
matched = true

pkg/workflows/host/requirement_selecting_module_test.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,14 @@ func TestRequirementSelectingModule_Close(t *testing.T) {
106106
startFn: noop,
107107
closeFn: func() { add0Closed = true },
108108
},
109-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
109+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
110110
}
111111
add1 := ModuleAndHandler{
112112
Module: &stubModule{
113113
startFn: noop,
114114
closeFn: func() { add1Closed = true },
115115
},
116-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return false }},
116+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return false }},
117117
}
118118

119119
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add0, add1})
@@ -172,7 +172,7 @@ func TestRequirementSelectingModule_Execute(t *testing.T) {
172172
return nil, nil
173173
},
174174
},
175-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
175+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
176176
}
177177

178178
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add})
@@ -200,7 +200,7 @@ func TestRequirementSelectingModule_Execute(t *testing.T) {
200200
return want, nil
201201
},
202202
},
203-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
203+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
204204
}
205205

206206
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add})
@@ -225,7 +225,7 @@ func TestRequirementSelectingModule_Execute(t *testing.T) {
225225
}}
226226
add := ModuleAndHandler{
227227
Module: &stubModule{startFn: noop},
228-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return false }},
228+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return false }},
229229
}
230230

231231
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add})
@@ -248,7 +248,7 @@ func TestRequirementSelectingModule_Execute(t *testing.T) {
248248
}}
249249
add0 := ModuleAndHandler{
250250
Module: &stubModule{startFn: noop},
251-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return false }},
251+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return false }},
252252
}
253253
add1 := ModuleAndHandler{
254254
Module: &stubModule{
@@ -258,7 +258,7 @@ func TestRequirementSelectingModule_Execute(t *testing.T) {
258258
return want, nil
259259
},
260260
},
261-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
261+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
262262
}
263263

264264
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add0, add1})
@@ -287,7 +287,7 @@ func TestRequirementSelectingModule_Execute(t *testing.T) {
287287
startFn: func() { atomic.AddInt32(&addStartCount, 1) },
288288
closeFn: noopClose,
289289
},
290-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
290+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
291291
}
292292

293293
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add})
@@ -338,7 +338,7 @@ func TestRequirementSelectingModule_Execute(t *testing.T) {
338338
return subscribeResult(subWithReqs(teeReqs)), nil
339339
},
340340
},
341-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
341+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
342342
}
343343
add := ModuleAndHandler{
344344
Module: &stubModule{
@@ -348,7 +348,7 @@ func TestRequirementSelectingModule_Execute(t *testing.T) {
348348
return nil, nil
349349
},
350350
},
351-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
351+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
352352
}
353353

354354
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add})
@@ -386,7 +386,7 @@ func TestRequirementSelectingModule_TriggerCache(t *testing.T) {
386386
return &sdk.ExecutionResult{}, nil
387387
},
388388
},
389-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
389+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
390390
}
391391

392392
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add})
@@ -427,7 +427,7 @@ func TestRequirementSelectingModule_TriggerCache(t *testing.T) {
427427
return &sdk.ExecutionResult{}, nil
428428
},
429429
},
430-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
430+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
431431
}
432432

433433
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add})
@@ -469,7 +469,7 @@ func TestRequirementSelectingModule_TriggerCache(t *testing.T) {
469469
return wantAdditional, nil
470470
},
471471
},
472-
RequirementsHandler: RequirementsHandler{Tee: func(*sdk.Tee) bool { return true }},
472+
RequirementsHandler: RequirementsHandler{Tee: func(context.Context, *sdk.Tee) bool { return true }},
473473
}
474474

475475
m := NewRequirementSelectingModule(main, []ModuleAndHandler{add})

pkg/workflows/host/requirements_gen/requirements_helper.go.tmpl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,26 @@
11
package host
22

3+
import "ctx"
4+
35
// RequirementsHandler contains a callback for each public field in sdk.Requirements.
46
// Each callback receives the field value and returns a list of strings or an error.
57
type RequirementsHandler struct {
68
{{- range .Fields}}
7-
{{.Name}} func({{.Type}}) bool
9+
{{.Name}} func(context.Context, {{.Type}}) bool
810
{{- end}}
911
}
1012

11-
// CheckRequirements calls each non-nil callback in handler for the corresponding
13+
// CheckRequirements calls each non-nil callback in the handler for the corresponding
1214
// non-nil field in req, returning false if any are false, or if the handler is nil.
1315
// Unknown fields on the proto also result in a false return value.
14-
func CheckRequirements(handler RequirementsHandler, req *sdk.Requirements) bool {
16+
func CheckRequirements(ctx context.Context, handler RequirementsHandler, req *sdk.Requirements) bool {
1517
if len(req.ProtoReflect().GetUnknown()) != 0 {
1618
return false
1719
}
1820

1921
{{range .Fields}}
2022
if req.{{.Name}} != nil {
21-
if handler.{{.Name}} == nil || !handler.{{.Name}}(req.{{.Name}}) {
23+
if handler.{{.Name}} == nil || !handler.{{.Name}}(ctx, req.{{.Name}}) {
2224
return false
2325
}
2426

0 commit comments

Comments
 (0)