Skip to content

Commit d5fedb0

Browse files
committed
Regions with any is allowed too, and let the TEE say everything it is, not just region.
1 parent 98d72c5 commit d5fedb0

11 files changed

Lines changed: 457 additions & 141 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-20260501133512-474ca53a440a
46+
github.com/smartcontractkit/chainlink-protos/cre/go v0.0.0-20260501160256-5806971948f2
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: 30 additions & 29 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: 5 additions & 5 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_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -510,8 +510,8 @@ func TestRequirementSelectingModule_TriggerCache(t *testing.T) {
510510
t.Run("different triggers route to different modules", func(t *testing.T) {
511511
// subscription 0: TEE required → additional; subscription 1: no requirements → main
512512
teeReqs := &sdk.Requirements{Tee: &sdk.Tee{
513-
Type: &sdk.Tee_TypeSelection{TypeSelection: &sdk.TeeTypeSelection{
514-
Types: []*sdk.TeeTypeAndRegions{{Type: sdk.TeeType_TEE_TYPE_AWS_NITRO}},
513+
Item: &sdk.Tee_TeeTypesAndRegions{TeeTypesAndRegions: &sdk.TeeTypesAndRegions{
514+
TeeTypeAndRegions: []*sdk.TeeTypeAndRegions{{Type: sdk.TeeType_TEE_TYPE_AWS_NITRO}},
515515
}},
516516
}}
517517
var mainTriggerCalls int32

pkg/workflows/host/tee_provider.go

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,48 @@
11
package host
22

3-
import (
4-
"context"
5-
"sync"
6-
7-
sdkpb "github.com/smartcontractkit/chainlink-protos/cre/go/sdk"
8-
)
3+
import sdkpb "github.com/smartcontractkit/chainlink-protos/cre/go/sdk"
94

105
type teeProvider struct {
116
sdkpb.TeeType
12-
regionsFn func(ctx context.Context) map[string]bool
13-
once sync.Once
7+
regions map[string]bool
148
}
159

16-
func NewTeeProvider(tpe sdkpb.TeeType, regionsFn func(ctx context.Context) []string) func(context.Context, *sdkpb.Tee) bool {
17-
p := &teeProvider{
18-
TeeType: tpe,
19-
regionsFn: func(ctx context.Context) map[string]bool {
20-
regions := regionsFn(ctx)
21-
rMap := make(map[string]bool, len(regions))
22-
for _, region := range regions {
23-
rMap[region] = true
24-
}
25-
return rMap
26-
},
10+
func NewTeeProvider(tpe sdkpb.TeeType, regions []string) func(tee *sdkpb.Tee) bool {
11+
supportedRegions := map[string]bool{}
12+
for _, region := range regions {
13+
supportedRegions[region] = true
2714
}
28-
return p.Provides
15+
return (&teeProvider{TeeType: tpe, regions: supportedRegions}).Provides
2916
}
3017

31-
func (t *teeProvider) Provides(ctx context.Context, tee *sdkpb.Tee) bool {
32-
switch teet := tee.Type.(type) {
33-
case *sdkpb.Tee_Any:
34-
return true
35-
case *sdkpb.Tee_TypeSelection:
36-
for _, selection := range teet.TypeSelection.Types {
37-
if selection.Type == t.TeeType {
38-
if len(selection.Regions) == 0 {
39-
return true
40-
}
41-
42-
regions := t.regionsFn(ctx)
43-
for _, region := range selection.Regions {
44-
if regions[region] {
45-
return true
46-
}
47-
}
18+
func (t *teeProvider) Provides(tee *sdkpb.Tee) bool {
19+
var regions []string
20+
switch teet := tee.Item.(type) {
21+
case *sdkpb.Tee_AnyRegions:
22+
regions = teet.AnyRegions.Regions
23+
case *sdkpb.Tee_TeeTypesAndRegions:
24+
if teet.TeeTypesAndRegions == nil {
25+
return false
26+
}
27+
28+
found := false
29+
for _, tr := range teet.TeeTypesAndRegions.TeeTypeAndRegions {
30+
if tr.Type == t.TeeType {
31+
found = true
32+
regions = tr.Regions
33+
break
4834
}
4935
}
36+
37+
if !found {
38+
return false
39+
}
40+
}
41+
42+
for _, region := range regions {
43+
if t.regions[region] {
44+
return true
45+
}
5046
}
5147

5248
return false

0 commit comments

Comments
 (0)