Skip to content

Commit a242745

Browse files
Types polishing
1 parent bd0294e commit a242745

File tree

9 files changed

+20
-18
lines changed

9 files changed

+20
-18
lines changed

src/evaluator/combiners/ifelseif.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export function ifElseIfCombinerContext(log: ILogger, predicates: IEvaluator[]):
3535
return undefined;
3636
}
3737

38-
function ifElseIfCombiner(key: SplitIO.SplitKey, seed: number, trafficAllocation?: number, trafficAllocationSeed?: number, attributes?: SplitIO.Attributes, splitEvaluator?: ISplitEvaluator) {
38+
function ifElseIfCombiner(key: SplitIO.SplitKey, seed?: number, trafficAllocation?: number, trafficAllocationSeed?: number, attributes?: SplitIO.Attributes, splitEvaluator?: ISplitEvaluator) {
3939
// In Async environments we are going to have async predicates. There is none way to know
4040
// before hand so we need to evaluate all the predicates, verify for thenables, and finally,
4141
// define how to return the treatment (wrap result into a Promise or not).

src/evaluator/condition/engineUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { bucket } from '../../utils/murmur3/murmur3';
55
/**
66
* Get the treatment name given a key, a seed, and the percentage of each treatment.
77
*/
8-
export function getTreatment(log: ILogger, key: string, seed: number, treatments: { getTreatmentFor: (x: number) => string }) {
8+
export function getTreatment(log: ILogger, key: string, seed: number | undefined, treatments: { getTreatmentFor: (x: number) => string }) {
99
const _bucket = bucket(key, seed);
1010

1111
const treatment = treatments.getTreatmentFor(_bucket);

src/evaluator/condition/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import SplitIO from '../../../types/splitio';
77
import { ILogger } from '../../logger/types';
88

99
// Build Evaluation object if and only if matchingResult is true
10-
function match(log: ILogger, matchingResult: boolean, bucketingKey: string | undefined, seed: number, treatments: { getTreatmentFor: (x: number) => string }, label: string): IEvaluation | undefined {
10+
function match(log: ILogger, matchingResult: boolean, bucketingKey: string | undefined, seed: number | undefined, treatments: { getTreatmentFor: (x: number) => string }, label: string): IEvaluation | undefined {
1111
if (matchingResult) {
1212
const treatment = getTreatment(log, bucketingKey as string, seed, treatments);
1313

@@ -24,7 +24,7 @@ function match(log: ILogger, matchingResult: boolean, bucketingKey: string | und
2424
// Condition factory
2525
export function conditionContext(log: ILogger, matcherEvaluator: (...args: any) => MaybeThenable<boolean>, treatments: { getTreatmentFor: (x: number) => string }, label: string, conditionType: 'ROLLOUT' | 'WHITELIST'): IEvaluator {
2626

27-
return function conditionEvaluator(key: SplitIO.SplitKey, seed: number, trafficAllocation?: number, trafficAllocationSeed?: number, attributes?: SplitIO.Attributes, splitEvaluator?: ISplitEvaluator) {
27+
return function conditionEvaluator(key: SplitIO.SplitKey, seed?: number, trafficAllocation?: number, trafficAllocationSeed?: number, attributes?: SplitIO.Attributes, splitEvaluator?: ISplitEvaluator) {
2828

2929
// Whitelisting has more priority than traffic allocation, so we don't apply this filtering to those conditions.
3030
if (conditionType === 'ROLLOUT' && !shouldApplyRollout(trafficAllocation as number, (key as SplitIO.SplitKeyObject).bucketingKey as string, trafficAllocationSeed as number)) {

src/evaluator/index.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ export function evaluateFeature(
4343
if (thenable(parsedSplit)) {
4444
return parsedSplit.then((split) => getEvaluation(
4545
log,
46-
split,
4746
key,
47+
split,
4848
attributes,
4949
storage,
5050
)).catch(
@@ -56,8 +56,8 @@ export function evaluateFeature(
5656

5757
return getEvaluation(
5858
log,
59-
parsedSplit,
6059
key,
60+
parsedSplit,
6161
attributes,
6262
storage,
6363
);
@@ -80,13 +80,13 @@ export function evaluateFeatures(
8080
}
8181

8282
return thenable(parsedSplits) ?
83-
parsedSplits.then(splits => getEvaluations(log, splitNames, splits, key, attributes, storage))
83+
parsedSplits.then(splits => getEvaluations(log, key, splitNames, splits, attributes, storage))
8484
.catch(() => {
8585
// Exception on async `getSplits` storage. For example, when the storage is redis or
8686
// pluggable and there is a connection issue and we can't retrieve the split to be evaluated
8787
return treatmentsException(splitNames);
8888
}) :
89-
getEvaluations(log, splitNames, parsedSplits, key, attributes, storage);
89+
getEvaluations(log, key, splitNames, parsedSplits, attributes, storage);
9090
}
9191

9292
export function evaluateFeaturesByFlagSets(
@@ -136,8 +136,8 @@ export function evaluateFeaturesByFlagSets(
136136

137137
function getEvaluation(
138138
log: ILogger,
139-
splitJSON: ISplit | null,
140139
key: SplitIO.SplitKey,
140+
splitJSON: ISplit | null,
141141
attributes: SplitIO.Attributes | undefined,
142142
storage: IStorageSync | IStorageAsync,
143143
): MaybeThenable<IEvaluationResult> {
@@ -172,9 +172,9 @@ function getEvaluation(
172172

173173
function getEvaluations(
174174
log: ILogger,
175+
key: SplitIO.SplitKey,
175176
splitNames: string[],
176177
splits: Record<string, ISplit | null>,
177-
key: SplitIO.SplitKey,
178178
attributes: SplitIO.Attributes | undefined,
179179
storage: IStorageSync | IStorageAsync,
180180
): MaybeThenable<Record<string, IEvaluationResult>> {
@@ -183,8 +183,8 @@ function getEvaluations(
183183
splitNames.forEach(splitName => {
184184
const evaluation = getEvaluation(
185185
log,
186-
splits[splitName],
187186
key,
187+
splits[splitName],
188188
attributes,
189189
storage
190190
);

src/evaluator/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import SplitIO from '../../types/splitio';
44
import { ILogger } from '../logger/types';
55

66
export interface IDependencyMatcherValue {
7-
key: SplitIO.SplitKey,
7+
key: SplitIO.SplitKeyObject,
88
attributes?: SplitIO.Attributes
99
}
1010

@@ -29,6 +29,6 @@ export type IEvaluationResult = IEvaluation & { treatment: string; impressionsDi
2929

3030
export type ISplitEvaluator = (log: ILogger, key: SplitIO.SplitKey, splitName: string, attributes: SplitIO.Attributes | undefined, storage: IStorageSync | IStorageAsync) => MaybeThenable<IEvaluation>
3131

32-
export type IEvaluator = (key: SplitIO.SplitKey, seed: number, trafficAllocation?: number, trafficAllocationSeed?: number, attributes?: SplitIO.Attributes, splitEvaluator?: ISplitEvaluator) => MaybeThenable<IEvaluation | undefined>
32+
export type IEvaluator = (key: SplitIO.SplitKey, seed?: number, trafficAllocation?: number, trafficAllocationSeed?: number, attributes?: SplitIO.Attributes, splitEvaluator?: ISplitEvaluator) => MaybeThenable<IEvaluation | undefined>
3333

3434
export type IMatcher = (...args: any) => MaybeThenable<boolean>

src/evaluator/value/sanitize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ function sanitizeBoolean(val: any): boolean | undefined {
4141
return undefined;
4242
}
4343

44-
function dependencyProcessor(sanitizedValue: string, attributes?: SplitIO.Attributes): IDependencyMatcherValue {
44+
function dependencyProcessor(sanitizedValue: SplitIO.SplitKeyObject, attributes?: SplitIO.Attributes): IDependencyMatcherValue {
4545
return {
4646
key: sanitizedValue,
4747
attributes

src/storages/__tests__/RBSegmentsCacheAsync.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ describe.each([{ cache: cacheInRedis, wrapper: redisClient }, { cache: cachePlug
4949
test('contains should check for segment existence correctly', async () => {
5050
await cache.update([rbSegment, rbSegmentWithInSegmentMatcher], [], 1);
5151

52+
expect(await cache.contains(new Set())).toBe(true);
5253
expect(await cache.contains(new Set([rbSegment.name]))).toBe(true);
5354
expect(await cache.contains(new Set([rbSegment.name, rbSegmentWithInSegmentMatcher.name]))).toBe(true);
5455
expect(await cache.contains(new Set(['nonexistent']))).toBe(false);

src/storages/__tests__/RBSegmentsCacheSync.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ describe.each([cacheInMemory, cacheInLocal])('Rule-based segments cache sync (Me
5151
test('contains should check for segment existence correctly', () => {
5252
cache.update([rbSegment, rbSegmentWithInSegmentMatcher], [], 1);
5353

54+
expect(cache.contains(new Set())).toBe(true);
5455
expect(cache.contains(new Set([rbSegment.name]))).toBe(true);
5556
expect(cache.contains(new Set([rbSegment.name, rbSegmentWithInSegmentMatcher.name]))).toBe(true);
5657
expect(cache.contains(new Set(['nonexistent']))).toBe(false);

src/sync/streaming/__tests__/dataMocks.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,21 +255,21 @@ export const splitNotifications = [
255255
{
256256
compression: 0,
257257
data: 'eyJ0cmFmZmljVHlwZU5hbWUiOiJ1c2VyIiwiaWQiOiJkNDMxY2RkMC1iMGJlLTExZWEtOGE4MC0xNjYwYWRhOWNlMzkiLCJuYW1lIjoibWF1cm9famF2YSIsInRyYWZmaWNBbGxvY2F0aW9uIjoxMDAsInRyYWZmaWNBbGxvY2F0aW9uU2VlZCI6LTkyMzkxNDkxLCJzZWVkIjotMTc2OTM3NzYwNCwic3RhdHVzIjoiQUNUSVZFIiwia2lsbGVkIjpmYWxzZSwiZGVmYXVsdFRyZWF0bWVudCI6Im9mZiIsImNoYW5nZU51bWJlciI6MTY4NDMyOTg1NDM4NSwiYWxnbyI6MiwiY29uZmlndXJhdGlvbnMiOnt9LCJjb25kaXRpb25zIjpbeyJjb25kaXRpb25UeXBlIjoiV0hJVEVMSVNUIiwibWF0Y2hlckdyb3VwIjp7ImNvbWJpbmVyIjoiQU5EIiwibWF0Y2hlcnMiOlt7Im1hdGNoZXJUeXBlIjoiV0hJVEVMSVNUIiwibmVnYXRlIjpmYWxzZSwid2hpdGVsaXN0TWF0Y2hlckRhdGEiOnsid2hpdGVsaXN0IjpbImFkbWluIiwibWF1cm8iLCJuaWNvIl19fV19LCJwYXJ0aXRpb25zIjpbeyJ0cmVhdG1lbnQiOiJvZmYiLCJzaXplIjoxMDB9XSwibGFiZWwiOiJ3aGl0ZWxpc3RlZCJ9LHsiY29uZGl0aW9uVHlwZSI6IlJPTExPVVQiLCJtYXRjaGVyR3JvdXAiOnsiY29tYmluZXIiOiJBTkQiLCJtYXRjaGVycyI6W3sia2V5U2VsZWN0b3IiOnsidHJhZmZpY1R5cGUiOiJ1c2VyIn0sIm1hdGNoZXJUeXBlIjoiSU5fU0VHTUVOVCIsIm5lZ2F0ZSI6ZmFsc2UsInVzZXJEZWZpbmVkU2VnbWVudE1hdGNoZXJEYXRhIjp7InNlZ21lbnROYW1lIjoibWF1ci0yIn19XX0sInBhcnRpdGlvbnMiOlt7InRyZWF0bWVudCI6Im9uIiwic2l6ZSI6MH0seyJ0cmVhdG1lbnQiOiJvZmYiLCJzaXplIjoxMDB9LHsidHJlYXRtZW50IjoiVjQiLCJzaXplIjowfSx7InRyZWF0bWVudCI6InY1Iiwic2l6ZSI6MH1dLCJsYWJlbCI6ImluIHNlZ21lbnQgbWF1ci0yIn0seyJjb25kaXRpb25UeXBlIjoiUk9MTE9VVCIsIm1hdGNoZXJHcm91cCI6eyJjb21iaW5lciI6IkFORCIsIm1hdGNoZXJzIjpbeyJrZXlTZWxlY3RvciI6eyJ0cmFmZmljVHlwZSI6InVzZXIifSwibWF0Y2hlclR5cGUiOiJBTExfS0VZUyIsIm5lZ2F0ZSI6ZmFsc2V9XX0sInBhcnRpdGlvbnMiOlt7InRyZWF0bWVudCI6Im9uIiwic2l6ZSI6MH0seyJ0cmVhdG1lbnQiOiJvZmYiLCJzaXplIjoxMDB9LHsidHJlYXRtZW50IjoiVjQiLCJzaXplIjowfSx7InRyZWF0bWVudCI6InY1Iiwic2l6ZSI6MH1dLCJsYWJlbCI6ImRlZmF1bHQgcnVsZSJ9XX0=',
258-
decoded: {trafficTypeName:'user',id:'d431cdd0-b0be-11ea-8a80-1660ada9ce39',name:'mauro_java',trafficAllocation:100,trafficAllocationSeed:-92391491,seed:-1769377604,status:'ACTIVE',killed:false,defaultTreatment:'off',changeNumber:1684329854385,algo:2,configurations:{},conditions:[{conditionType:'WHITELIST',matcherGroup:{combiner:'AND',matchers:[{matcherType:'WHITELIST',negate:false,whitelistMatcherData:{whitelist:['admin','mauro','nico']}}]},partitions:[{treatment:'off',size:100}],label:'whitelisted'},{conditionType:'ROLLOUT',matcherGroup:{combiner:'AND',matchers:[{keySelector:{trafficType:'user'},matcherType:'IN_SEGMENT',negate:false,userDefinedSegmentMatcherData:{segmentName:'maur-2'}}]},partitions:[{treatment:'on',size:0},{treatment:'off',size:100},{treatment:'V4',size:0},{treatment:'v5',size:0}],label:'in segment maur-2'},{conditionType:'ROLLOUT',matcherGroup:{combiner:'AND',matchers:[{keySelector:{trafficType:'user'},matcherType:'ALL_KEYS',negate:false}]},partitions:[{treatment:'on',size:0},{treatment:'off',size:100},{treatment:'V4',size:0},{treatment:'v5',size:0}],label:'default rule'}]}
258+
decoded: { trafficTypeName: 'user', id: 'd431cdd0-b0be-11ea-8a80-1660ada9ce39', name: 'mauro_java', trafficAllocation: 100, trafficAllocationSeed: -92391491, seed: -1769377604, status: 'ACTIVE', killed: false, defaultTreatment: 'off', changeNumber: 1684329854385, algo: 2, configurations: {}, conditions: [{ conditionType: 'WHITELIST', matcherGroup: { combiner: 'AND', matchers: [{ matcherType: 'WHITELIST', negate: false, whitelistMatcherData: { whitelist: ['admin', 'mauro', 'nico'] } }] }, partitions: [{ treatment: 'off', size: 100 }], label: 'whitelisted' }, { conditionType: 'ROLLOUT', matcherGroup: { combiner: 'AND', matchers: [{ keySelector: { trafficType: 'user' }, matcherType: 'IN_SEGMENT', negate: false, userDefinedSegmentMatcherData: { segmentName: 'maur-2' } }] }, partitions: [{ treatment: 'on', size: 0 }, { treatment: 'off', size: 100 }, { treatment: 'V4', size: 0 }, { treatment: 'v5', size: 0 }], label: 'in segment maur-2' }, { conditionType: 'ROLLOUT', matcherGroup: { combiner: 'AND', matchers: [{ keySelector: { trafficType: 'user' }, matcherType: 'ALL_KEYS', negate: false }] }, partitions: [{ treatment: 'on', size: 0 }, { treatment: 'off', size: 100 }, { treatment: 'V4', size: 0 }, { treatment: 'v5', size: 0 }], label: 'default rule' }] }
259259
},
260260
{
261261
compression: 1, // GZIP
262262
data: 'H4sIAAAAAAAA/8yT327aTBDFXyU612vJxoTgvUMfKB8qcaSapqoihAZ7DNusvWi9TpUiv3tl/pdQVb1qL+cwc3bOj/EGzlKeq3T6tuaYCoZEXbGFgMogkXXDIM0y31v4C/aCgMnrU9/3gl7Pp4yilMMIAuVusqDamvlXeiWIg/FAa5OSU6aEDHz/ip4wZ5Be1AmjoBsFAtVOCO56UXh31/O7ApUjV1eQGPw3HT+NIPCitG7bctIVC2ScU63d1DK5gksHCZPnEEhXVC45rosFW8ig1++GYej3g85tJEB6aSA7Aqkpc7Ws7XahCnLTbLVM7evnzalsUUHi8//j6WgyTqYQKMilK7b31tRryLa3WKiyfRCDeHhq2Dntiys+JS/J8THUt5VyrFXlHnYTQ3LU2h91yGdQVqhy+0RtTeuhUoNZ08wagTVZdxbBndF5vYVApb7z9m9pZgKaFqwhT+6coRHvg398nEweP/157Bd+S1hz6oxtm88O73B0jbhgM47nyej+YRRfgdNODDlXJWcJL9tUF5SqnRqfbtPr4LdcTHnk4rfp3buLOkG7+Pmp++vRM9w/wVblzX7Pm8OGfxf5YDKZfxh9SS6B/2Pc9t/7ja01o5k1PwIAAP//uTipVskEAAA=',
263-
decoded: {trafficTypeName:'user',id:'d431cdd0-b0be-11ea-8a80-1660ada9ce39',name:'mauro_java',trafficAllocation:100,trafficAllocationSeed:-92391491,seed:-1769377604,status:'ACTIVE',killed:false,defaultTreatment:'off',changeNumber:1684333081259,algo:2,configurations:{},conditions:[{conditionType:'WHITELIST',matcherGroup:{combiner:'AND',matchers:[{matcherType:'WHITELIST',negate:false,whitelistMatcherData:{whitelist:['admin','mauro','nico']}}]},partitions:[{treatment:'v5',size:100}],label:'whitelisted'},{conditionType:'ROLLOUT',matcherGroup:{combiner:'AND',matchers:[{keySelector:{trafficType:'user'},matcherType:'IN_SEGMENT',negate:false,userDefinedSegmentMatcherData:{segmentName:'maur-2'}}]},partitions:[{treatment:'on',size:0},{treatment:'off',size:100},{treatment:'V4',size:0},{treatment:'v5',size:0}],label:'in segment maur-2'},{conditionType:'ROLLOUT',matcherGroup:{combiner:'AND',matchers:[{keySelector:{trafficType:'user'},matcherType:'ALL_KEYS',negate:false}]},partitions:[{treatment:'on',size:0},{treatment:'off',size:100},{treatment:'V4',size:0},{treatment:'v5',size:0}],label:'default rule'}]}
263+
decoded: { trafficTypeName: 'user', id: 'd431cdd0-b0be-11ea-8a80-1660ada9ce39', name: 'mauro_java', trafficAllocation: 100, trafficAllocationSeed: -92391491, seed: -1769377604, status: 'ACTIVE', killed: false, defaultTreatment: 'off', changeNumber: 1684333081259, algo: 2, configurations: {}, conditions: [{ conditionType: 'WHITELIST', matcherGroup: { combiner: 'AND', matchers: [{ matcherType: 'WHITELIST', negate: false, whitelistMatcherData: { whitelist: ['admin', 'mauro', 'nico'] } }] }, partitions: [{ treatment: 'v5', size: 100 }], label: 'whitelisted' }, { conditionType: 'ROLLOUT', matcherGroup: { combiner: 'AND', matchers: [{ keySelector: { trafficType: 'user' }, matcherType: 'IN_SEGMENT', negate: false, userDefinedSegmentMatcherData: { segmentName: 'maur-2' } }] }, partitions: [{ treatment: 'on', size: 0 }, { treatment: 'off', size: 100 }, { treatment: 'V4', size: 0 }, { treatment: 'v5', size: 0 }], label: 'in segment maur-2' }, { conditionType: 'ROLLOUT', matcherGroup: { combiner: 'AND', matchers: [{ keySelector: { trafficType: 'user' }, matcherType: 'ALL_KEYS', negate: false }] }, partitions: [{ treatment: 'on', size: 0 }, { treatment: 'off', size: 100 }, { treatment: 'V4', size: 0 }, { treatment: 'v5', size: 0 }], label: 'default rule' }] }
264264
},
265265
{
266266
compression: 2, // ZLIB
267267
data: 'eJzMk99u2kwQxV8lOtdryQZj8N6hD5QPlThSTVNVEUKDPYZt1jZar1OlyO9emf8lVFWv2ss5zJyd82O8hTWUZSqZvW04opwhUVdsIKBSSKR+10vS1HWW7pIdz2NyBjRwHS8IXEopTLgbQqDYT+ZUm3LxlV4J4mg81LpMyKqygPRc94YeM6eQTtjphp4fegLVXvD6Qdjt9wPXF6gs2bqCxPC/2eRpDIEXpXXblpGuWCDljGptZ4bJ5lxYSJRZBoFkTcWKozpfsoH0goHfCXpB6PfcngDpVQnZEUjKIlOr2uwWqiC3zU5L1aF+3p7LFhUkPv8/mY2nk3gGgZxssmZzb8p6A9n25ktVtA9iGI3ODXunQ3HDp+AVWT6F+rZWlrWq7MN+YkSWWvuTDvkMSnNV7J6oTdl6qKTEvGnmjcCGjL2IYC/ovPYgUKnvvPtbmrmApiVryLM7p2jE++AfH6fTx09/HvuF32LWnNjStM0Xh3c8ukZcsZlEi3h8/zCObsBpJ0acqYLTmFdtqitK1V6NzrfpdPBbLmVx4uK26e27izpDu/r5yf/16AXun2Cr4u6w591xw7+LfDidLj6Mv8TXwP8xbofv/c7UmtHMmx8BAAD//0fclvU=',
268-
decoded: {trafficTypeName:'user',id:'d431cdd0-b0be-11ea-8a80-1660ada9ce39',name:'mauro_java',trafficAllocation:100,trafficAllocationSeed:-92391491,seed:-1769377604,status:'ACTIVE',killed:false,defaultTreatment:'off',changeNumber:1684265694505,algo:2,configurations:{},conditions:[{conditionType:'WHITELIST',matcherGroup:{combiner:'AND',matchers:[{matcherType:'WHITELIST',negate:false,whitelistMatcherData:{whitelist:['admin','mauro','nico']}}]},partitions:[{treatment:'v5',size:100}],label:'whitelisted'},{conditionType:'ROLLOUT',matcherGroup:{combiner:'AND',matchers:[{keySelector:{trafficType:'user'},matcherType:'IN_SEGMENT',negate:false,userDefinedSegmentMatcherData:{segmentName:'maur-2'}}]},partitions:[{treatment:'on',size:0},{treatment:'off',size:100},{treatment:'V4',size:0},{treatment:'v5',size:0}],label:'in segment maur-2'},{conditionType:'ROLLOUT',matcherGroup:{combiner:'AND',matchers:[{keySelector:{trafficType:'user'},matcherType:'ALL_KEYS',negate:false}]},partitions:[{treatment:'on',size:0},{treatment:'off',size:100},{treatment:'V4',size:0},{treatment:'v5',size:0}],label:'default rule'}]},
268+
decoded: { trafficTypeName: 'user', id: 'd431cdd0-b0be-11ea-8a80-1660ada9ce39', name: 'mauro_java', trafficAllocation: 100, trafficAllocationSeed: -92391491, seed: -1769377604, status: 'ACTIVE', killed: false, defaultTreatment: 'off', changeNumber: 1684265694505, algo: 2, configurations: {}, conditions: [{ conditionType: 'WHITELIST', matcherGroup: { combiner: 'AND', matchers: [{ matcherType: 'WHITELIST', negate: false, whitelistMatcherData: { whitelist: ['admin', 'mauro', 'nico'] } }] }, partitions: [{ treatment: 'v5', size: 100 }], label: 'whitelisted' }, { conditionType: 'ROLLOUT', matcherGroup: { combiner: 'AND', matchers: [{ keySelector: { trafficType: 'user' }, matcherType: 'IN_SEGMENT', negate: false, userDefinedSegmentMatcherData: { segmentName: 'maur-2' } }] }, partitions: [{ treatment: 'on', size: 0 }, { treatment: 'off', size: 100 }, { treatment: 'V4', size: 0 }, { treatment: 'v5', size: 0 }], label: 'in segment maur-2' }, { conditionType: 'ROLLOUT', matcherGroup: { combiner: 'AND', matchers: [{ keySelector: { trafficType: 'user' }, matcherType: 'ALL_KEYS', negate: false }] }, partitions: [{ treatment: 'on', size: 0 }, { treatment: 'off', size: 100 }, { treatment: 'V4', size: 0 }, { treatment: 'v5', size: 0 }], label: 'default rule' }] },
269269
},
270270
{
271271
compression: 2, // ZLIB
272272
data: 'eJxsUdFu4jAQ/JVqnx3JDjTh/JZCrj2JBh0EqtOBIuNswKqTIMeuxKH8+ykhiKrqiyXvzM7O7lzAGlEUSqbnEyaiRODgGjRAQOXAIQ/puPB96tHHIPQYQ/QmFNErxEgG44DKnI2AQHXtTOI0my6WcXZAmxoUtsTKvil7nNZVoQ5RYdFERh7VBwK5TY60rqWwqq6AM0q/qa8Qc+As/EHZ5HHMCDR9wQ/9kIajcEygscK6BjhEy+nLr008AwLvSuuOVgjdIIEcC+H03RZw2Hg/n88JEJBHUR0wceUeDXAWTAIWPAYsZEFAQOhDDdwnIPslnOk9NcAvNwEOly3IWtdmC3wLe+1wCy0Q2Hh/zNvTV9xg3sFtr5irQe3v5f7twgAOy8V8vlinQKAUVh7RPJvanbrBsi73qurMQpTM7oSrzjueV6hR2tp05E8J39MV1hq1d7YrWWxsZ2cQGYjzeLXK0pcoyRbLLP69juZZuuiyxoPo2oa7ukqYc+JKNEq+XgVmwopucC6sGMSS9etTvAQCH0I7BO7Ttt21BE7C2E8XsN+l06h/CJy25CveH/eGM0rbHQEt9qiHnR62jtKR7N/8wafQ7tr/AQAA//8S4fPB',
273-
decoded: {trafficTypeName:'user',id:'d704f220-0567-11ee-80ee-fa3c6460cd13',name:'NET_CORE_getTreatmentWithConfigAfterArchive',trafficAllocation:100,trafficAllocationSeed:179018541,seed:272707374,status:'ARCHIVED',killed:false,defaultTreatment:'V-FGyN',changeNumber:1686165617166,algo:2,configurations:{'V-FGyN':'{"color":"blue"}','V-YrWB':'{"color":"red"}'},conditions:[{conditionType:'ROLLOUT',matcherGroup:{combiner:'AND',matchers:[{keySelector:{trafficType:'user',attribute:'test'},matcherType:'LESS_THAN_OR_EQUAL_TO',negate:false,unaryNumericMatcherData:{dataType:'NUMBER',value:20}}]},partitions:[{treatment:'V-FGyN',size:0},{treatment:'V-YrWB',size:100}],label:'test \u003c\u003d 20'}]}
273+
decoded: { trafficTypeName: 'user', id: 'd704f220-0567-11ee-80ee-fa3c6460cd13', name: 'NET_CORE_getTreatmentWithConfigAfterArchive', trafficAllocation: 100, trafficAllocationSeed: 179018541, seed: 272707374, status: 'ARCHIVED', killed: false, defaultTreatment: 'V-FGyN', changeNumber: 1686165617166, algo: 2, configurations: { 'V-FGyN': '{"color":"blue"}', 'V-YrWB': '{"color":"red"}' }, conditions: [{ conditionType: 'ROLLOUT', matcherGroup: { combiner: 'AND', matchers: [{ keySelector: { trafficType: 'user', attribute: 'test' }, matcherType: 'LESS_THAN_OR_EQUAL_TO', negate: false, unaryNumericMatcherData: { dataType: 'NUMBER', value: 20 } }] }, partitions: [{ treatment: 'V-FGyN', size: 0 }, { treatment: 'V-YrWB', size: 100 }], label: 'test \u003c\u003d 20' }] }
274274
}
275275
];

0 commit comments

Comments
 (0)