@@ -11,6 +11,7 @@ import (
1111
1212	impressionlistener "github.com/splitio/go-client/v6/splitio/impressionListener" 
1313	"github.com/splitio/go-split-commons/v6/conf" 
14+ 	"github.com/splitio/go-split-commons/v6/engine/grammar" 
1415	"github.com/splitio/go-toolkit/v5/datastructures/set" 
1516	"github.com/splitio/go-toolkit/v5/logging" 
1617	"github.com/splitio/go-toolkit/v5/nethelpers" 
@@ -25,6 +26,15 @@ const (
2526	InMemoryStandAlone  =  "inmemory-standalone" 
2627)
2728
29+ var  featureFlagsRules  =  []string {grammar .MatcherTypeAllKeys , grammar .MatcherTypeInSegment , grammar .MatcherTypeWhitelist , grammar .MatcherTypeEqualTo , grammar .MatcherTypeGreaterThanOrEqualTo , grammar .MatcherTypeLessThanOrEqualTo , grammar .MatcherTypeBetween ,
30+ 	grammar .MatcherTypeEqualToSet , grammar .MatcherTypePartOfSet , grammar .MatcherTypeContainsAllOfSet , grammar .MatcherTypeContainsAnyOfSet , grammar .MatcherTypeStartsWith , grammar .MatcherTypeEndsWith , grammar .MatcherTypeContainsString , grammar .MatcherTypeInSplitTreatment ,
31+ 	grammar .MatcherTypeEqualToBoolean , grammar .MatcherTypeMatchesString , grammar .MatcherEqualToSemver , grammar .MatcherTypeGreaterThanOrEqualToSemver , grammar .MatcherTypeLessThanOrEqualToSemver , grammar .MatcherTypeBetweenSemver , grammar .MatcherTypeInListSemver ,
32+ 	grammar .MatcherTypeInRuleBasedSegment }
33+ var  ruleBasedSegmentRules  =  []string {grammar .MatcherTypeAllKeys , grammar .MatcherTypeInSegment , grammar .MatcherTypeWhitelist , grammar .MatcherTypeEqualTo , grammar .MatcherTypeGreaterThanOrEqualTo , grammar .MatcherTypeLessThanOrEqualTo , grammar .MatcherTypeBetween ,
34+ 	grammar .MatcherTypeEqualToSet , grammar .MatcherTypePartOfSet , grammar .MatcherTypeContainsAllOfSet , grammar .MatcherTypeContainsAnyOfSet , grammar .MatcherTypeStartsWith , grammar .MatcherTypeEndsWith , grammar .MatcherTypeContainsString ,
35+ 	grammar .MatcherTypeEqualToBoolean , grammar .MatcherTypeMatchesString , grammar .MatcherEqualToSemver , grammar .MatcherTypeGreaterThanOrEqualToSemver , grammar .MatcherTypeLessThanOrEqualToSemver , grammar .MatcherTypeBetweenSemver , grammar .MatcherTypeInListSemver ,
36+ 	grammar .MatcherTypeInRuleBasedSegment }
37+ 
2838// SplitSdkConfig struct ... 
2939// struct used to setup a Split.io SDK client. 
3040// 
@@ -80,21 +90,23 @@ type TaskPeriods struct {
8090// - SegmentQueueSize - How many segments can be queued for updating (should be >= # segments the user has) 
8191// - SegmentWorkers - How many workers will be used when performing segments sync. 
8292type  AdvancedConfig  struct  {
83- 	ImpressionListener    impressionlistener.ImpressionListener 
84- 	HTTPTimeout           int 
85- 	SegmentQueueSize      int 
86- 	SegmentWorkers        int 
87- 	AuthServiceURL        string 
88- 	SdkURL                string 
89- 	EventsURL             string 
90- 	StreamingServiceURL   string 
91- 	TelemetryServiceURL   string 
92- 	EventsBulkSize        int64 
93- 	EventsQueueSize       int 
94- 	ImpressionsQueueSize  int 
95- 	ImpressionsBulkSize   int64 
96- 	StreamingEnabled      bool 
97- 	FlagSetsFilter        []string 
93+ 	ImpressionListener     impressionlistener.ImpressionListener 
94+ 	HTTPTimeout            int 
95+ 	SegmentQueueSize       int 
96+ 	SegmentWorkers         int 
97+ 	AuthServiceURL         string 
98+ 	SdkURL                 string 
99+ 	EventsURL              string 
100+ 	StreamingServiceURL    string 
101+ 	TelemetryServiceURL    string 
102+ 	EventsBulkSize         int64 
103+ 	EventsQueueSize        int 
104+ 	ImpressionsQueueSize   int 
105+ 	ImpressionsBulkSize    int64 
106+ 	StreamingEnabled       bool 
107+ 	FlagSetsFilter         []string 
108+ 	FeatureFlagRules       []string 
109+ 	RuleBasedSegmentRules  []string 
98110}
99111
100112// Default returns a config struct with all the default values 
@@ -144,20 +156,22 @@ func Default() *SplitSdkConfig {
144156			EventsSync :     defaultTaskPeriod ,
145157		},
146158		Advanced : AdvancedConfig {
147- 			AuthServiceURL :       "" ,
148- 			EventsURL :            "" ,
149- 			SdkURL :               "" ,
150- 			StreamingServiceURL :  "" ,
151- 			TelemetryServiceURL :  "" ,
152- 			HTTPTimeout :          defaultHTTPTimeout ,
153- 			ImpressionListener :   nil ,
154- 			SegmentQueueSize :     500 ,
155- 			SegmentWorkers :       10 ,
156- 			EventsBulkSize :       5000 ,
157- 			EventsQueueSize :      10000 ,
158- 			ImpressionsQueueSize : 10000 ,
159- 			ImpressionsBulkSize :  5000 ,
160- 			StreamingEnabled :     true ,
159+ 			AuthServiceURL :        "" ,
160+ 			EventsURL :             "" ,
161+ 			SdkURL :                "" ,
162+ 			StreamingServiceURL :   "" ,
163+ 			TelemetryServiceURL :   "" ,
164+ 			HTTPTimeout :           defaultHTTPTimeout ,
165+ 			ImpressionListener :    nil ,
166+ 			SegmentQueueSize :      500 ,
167+ 			SegmentWorkers :        10 ,
168+ 			EventsBulkSize :        5000 ,
169+ 			EventsQueueSize :       10000 ,
170+ 			ImpressionsQueueSize :  10000 ,
171+ 			ImpressionsBulkSize :   5000 ,
172+ 			StreamingEnabled :      true ,
173+ 			FeatureFlagRules :      featureFlagsRules ,
174+ 			RuleBasedSegmentRules : ruleBasedSegmentRules ,
161175		},
162176	}
163177}
0 commit comments