unleash-server 4.22.0-beta.7 → 4.22.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/addons/feature-event-formatter-md.d.ts +12 -3
- package/dist/lib/addons/feature-event-formatter-md.js +135 -31
- package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.test.d.ts +1 -0
- package/dist/lib/addons/feature-event-formatter-md.test.js +483 -0
- package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IEvent } from '../types
|
|
1
|
+
import { IEvent } from '../types';
|
|
2
2
|
export interface FeatureEventFormatter {
|
|
3
3
|
format: (event: IEvent) => string;
|
|
4
4
|
featureLink: (event: IEvent) => string;
|
|
@@ -8,14 +8,23 @@ export declare enum LinkStyle {
|
|
|
8
8
|
MD = 1
|
|
9
9
|
}
|
|
10
10
|
export declare class FeatureEventFormatterMd implements FeatureEventFormatter {
|
|
11
|
-
private unleashUrl;
|
|
12
|
-
private linkStyle;
|
|
11
|
+
private readonly unleashUrl;
|
|
12
|
+
private readonly linkStyle;
|
|
13
13
|
constructor(unleashUrl: string, linkStyle?: LinkStyle);
|
|
14
14
|
generateArchivedText(event: IEvent): string;
|
|
15
15
|
generateFeatureLink(event: IEvent): string;
|
|
16
16
|
generateStaleText(event: IEvent): string;
|
|
17
17
|
generateEnvironmentToggleText(event: IEvent): string;
|
|
18
18
|
generateStrategyChangeText(event: IEvent): string;
|
|
19
|
+
private applicationHostnameStrategyChangeText;
|
|
20
|
+
private remoteAddressStrategyChangeText;
|
|
21
|
+
private userWithIdStrategyChangeText;
|
|
22
|
+
private listOfValuesStrategyChangeText;
|
|
23
|
+
private flexibleRolloutStrategyChangeText;
|
|
24
|
+
private defaultStrategyChangeText;
|
|
25
|
+
private constraintChangeText;
|
|
26
|
+
generateStrategyRemoveText(event: IEvent): string;
|
|
27
|
+
generateStrategyAddText(event: IEvent): string;
|
|
19
28
|
generateMetadataText(event: IEvent): string;
|
|
20
29
|
generateProjectChangeText(event: IEvent): string;
|
|
21
30
|
featureLink(event: IEvent): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FeatureEventFormatterMd = exports.LinkStyle = void 0;
|
|
4
|
-
const
|
|
4
|
+
const types_1 = require("../types");
|
|
5
5
|
var LinkStyle;
|
|
6
6
|
(function (LinkStyle) {
|
|
7
7
|
LinkStyle[LinkStyle["SLACK"] = 0] = "SLACK";
|
|
@@ -14,7 +14,7 @@ class FeatureEventFormatterMd {
|
|
|
14
14
|
}
|
|
15
15
|
generateArchivedText(event) {
|
|
16
16
|
const { createdBy, type } = event;
|
|
17
|
-
const action = type ===
|
|
17
|
+
const action = type === types_1.FEATURE_ARCHIVED ? 'archived' : 'revived';
|
|
18
18
|
const feature = this.generateFeatureLink(event);
|
|
19
19
|
return ` ${createdBy} just ${action} feature toggle *${feature}*`;
|
|
20
20
|
}
|
|
@@ -28,7 +28,7 @@ class FeatureEventFormatterMd {
|
|
|
28
28
|
}
|
|
29
29
|
generateStaleText(event) {
|
|
30
30
|
const { createdBy, type } = event;
|
|
31
|
-
const isStale = type ===
|
|
31
|
+
const isStale = type === types_1.FEATURE_STALE_ON;
|
|
32
32
|
const feature = this.generateFeatureLink(event);
|
|
33
33
|
if (isStale) {
|
|
34
34
|
return `${createdBy} marked ${feature} as stale and this feature toggle is now *ready to be removed* from the code.`;
|
|
@@ -37,24 +37,126 @@ class FeatureEventFormatterMd {
|
|
|
37
37
|
}
|
|
38
38
|
generateEnvironmentToggleText(event) {
|
|
39
39
|
const { createdBy, environment, type, project } = event;
|
|
40
|
-
const toggleStatus = type ===
|
|
40
|
+
const toggleStatus = type === types_1.FEATURE_ENVIRONMENT_ENABLED ? 'enabled' : 'disabled';
|
|
41
41
|
const feature = this.generateFeatureLink(event);
|
|
42
42
|
return `${createdBy} *${toggleStatus}* ${feature} in *${environment}* environment in project *${project}*`;
|
|
43
43
|
}
|
|
44
44
|
generateStrategyChangeText(event) {
|
|
45
|
-
const { createdBy, environment, project, data, preData
|
|
45
|
+
const { createdBy, environment, project, data, preData } = event;
|
|
46
46
|
const feature = this.generateFeatureLink(event);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
const strategyText = () => {
|
|
48
|
+
switch (data.name) {
|
|
49
|
+
case 'flexibleRollout':
|
|
50
|
+
return this.flexibleRolloutStrategyChangeText(preData, data, environment);
|
|
51
|
+
case 'default':
|
|
52
|
+
return this.defaultStrategyChangeText(preData, data, environment);
|
|
53
|
+
case 'userWithId':
|
|
54
|
+
return this.userWithIdStrategyChangeText(preData, data, environment);
|
|
55
|
+
case 'remoteAddress':
|
|
56
|
+
return this.remoteAddressStrategyChangeText(preData, data, environment);
|
|
57
|
+
case 'applicationHostname':
|
|
58
|
+
return this.applicationHostnameStrategyChangeText(preData, data, environment);
|
|
59
|
+
default:
|
|
60
|
+
return `by updating strategy ${data?.name} in *${environment}*`;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return `${createdBy} updated *${feature}* in project *${project}* ${strategyText()}`;
|
|
64
|
+
}
|
|
65
|
+
applicationHostnameStrategyChangeText(preData, data, environment) {
|
|
66
|
+
return this.listOfValuesStrategyChangeText(preData, data, environment, 'hostNames');
|
|
67
|
+
}
|
|
68
|
+
remoteAddressStrategyChangeText(preData, data, environment) {
|
|
69
|
+
return this.listOfValuesStrategyChangeText(preData, data, environment, 'IPs');
|
|
70
|
+
}
|
|
71
|
+
userWithIdStrategyChangeText(preData, data, environment) {
|
|
72
|
+
return this.listOfValuesStrategyChangeText(preData, data, environment, 'userIds');
|
|
73
|
+
}
|
|
74
|
+
listOfValuesStrategyChangeText(preData, data, environment, propertyName) {
|
|
75
|
+
const userIdText = (values) => values.length === 0
|
|
76
|
+
? `empty set of ${propertyName}`
|
|
77
|
+
: `[${values}]`;
|
|
78
|
+
const usersText = preData.parameters[propertyName] === data.parameters[propertyName]
|
|
79
|
+
? ''
|
|
80
|
+
: ` ${propertyName} from ${userIdText(preData.parameters[propertyName])} to ${userIdText(data.parameters[propertyName])}`;
|
|
81
|
+
const constraintText = this.constraintChangeText(preData.constraints, data.constraints);
|
|
82
|
+
const strategySpecificText = [usersText, constraintText]
|
|
83
|
+
.filter((x) => x.length)
|
|
84
|
+
.join(';');
|
|
85
|
+
return `by updating strategy ${data?.name} in *${environment}*${strategySpecificText}`;
|
|
86
|
+
}
|
|
87
|
+
flexibleRolloutStrategyChangeText(preData, data, environment) {
|
|
88
|
+
const { rollout: oldRollout, stickiness: oldStickiness, groupId: oldGroupId, } = preData.parameters;
|
|
89
|
+
const { rollout, stickiness, groupId } = data.parameters;
|
|
90
|
+
const stickinessText = oldStickiness === stickiness
|
|
91
|
+
? ''
|
|
92
|
+
: ` stickiness from ${oldStickiness} to ${stickiness}`;
|
|
93
|
+
const rolloutText = oldRollout === rollout
|
|
94
|
+
? ''
|
|
95
|
+
: ` rollout from ${oldRollout}% to ${rollout}%`;
|
|
96
|
+
const groupIdText = oldGroupId === groupId
|
|
97
|
+
? ''
|
|
98
|
+
: ` groupId from ${oldGroupId} to ${groupId}`;
|
|
99
|
+
const constraintText = this.constraintChangeText(preData.constraints, data.constraints);
|
|
100
|
+
const strategySpecificText = [
|
|
101
|
+
stickinessText,
|
|
102
|
+
rolloutText,
|
|
103
|
+
groupIdText,
|
|
104
|
+
constraintText,
|
|
105
|
+
]
|
|
106
|
+
.filter((txt) => txt.length)
|
|
107
|
+
.join(';');
|
|
108
|
+
return `by updating strategy ${data?.name} in *${environment}*${strategySpecificText}`;
|
|
109
|
+
}
|
|
110
|
+
defaultStrategyChangeText(preData, data, environment) {
|
|
111
|
+
return `by updating strategy ${data?.name} in *${environment}*${this.constraintChangeText(preData.constraints, data.constraints)}`;
|
|
112
|
+
}
|
|
113
|
+
constraintChangeText(oldConstraints, newConstraints) {
|
|
114
|
+
const formatConstraints = (constraints) => {
|
|
115
|
+
const constraintOperatorDescriptions = {
|
|
116
|
+
IN: 'is one of',
|
|
117
|
+
NOT_IN: 'is not one of',
|
|
118
|
+
STR_CONTAINS: 'is a string that contains',
|
|
119
|
+
STR_STARTS_WITH: 'is a string that starts with',
|
|
120
|
+
STR_ENDS_WITH: 'is a string that ends with',
|
|
121
|
+
NUM_EQ: 'is a number equal to',
|
|
122
|
+
NUM_GT: 'is a number greater than',
|
|
123
|
+
NUM_GTE: 'is a number greater than or equal to',
|
|
124
|
+
NUM_LT: 'is a number less than',
|
|
125
|
+
NUM_LTE: 'is a number less than or equal to',
|
|
126
|
+
DATE_BEFORE: 'is a date before',
|
|
127
|
+
DATE_AFTER: 'is a date after',
|
|
128
|
+
SEMVER_EQ: 'is a SemVer equal to',
|
|
129
|
+
SEMVER_GT: 'is a SemVer greater than',
|
|
130
|
+
SEMVER_LT: 'is a SemVer less than',
|
|
131
|
+
};
|
|
132
|
+
const formatConstraint = (constraint) => {
|
|
133
|
+
const val = constraint.hasOwnProperty('value')
|
|
134
|
+
? constraint.value
|
|
135
|
+
: `(${constraint.values.join(',')})`;
|
|
136
|
+
const operator = constraintOperatorDescriptions.hasOwnProperty(constraint.operator)
|
|
137
|
+
? constraintOperatorDescriptions[constraint.operator]
|
|
138
|
+
: constraint.operator;
|
|
139
|
+
return `${constraint.contextName} ${constraint.inverted ? 'not ' : ''}${operator} ${val}`;
|
|
140
|
+
};
|
|
141
|
+
return constraints.length === 0
|
|
142
|
+
? 'empty set of constraints'
|
|
143
|
+
: `[${constraints.map(formatConstraint).join(', ')}]`;
|
|
144
|
+
};
|
|
145
|
+
const oldConstraintText = formatConstraints(oldConstraints);
|
|
146
|
+
const newConstraintText = formatConstraints(newConstraints);
|
|
147
|
+
return oldConstraintText === newConstraintText
|
|
148
|
+
? ''
|
|
149
|
+
: ` constraints from ${oldConstraintText} to ${newConstraintText}`;
|
|
150
|
+
}
|
|
151
|
+
generateStrategyRemoveText(event) {
|
|
152
|
+
const { createdBy, environment, project, preData } = event;
|
|
153
|
+
const feature = this.generateFeatureLink(event);
|
|
154
|
+
return `${createdBy} updated *${feature}* in project *${project}* by removing strategy ${preData?.name} in *${environment}*`;
|
|
155
|
+
}
|
|
156
|
+
generateStrategyAddText(event) {
|
|
157
|
+
const { createdBy, environment, project, data } = event;
|
|
158
|
+
const feature = this.generateFeatureLink(event);
|
|
159
|
+
return `${createdBy} updated *${feature}* in project *${project}* by adding strategy ${data?.name} in *${environment}*`;
|
|
58
160
|
}
|
|
59
161
|
generateMetadataText(event) {
|
|
60
162
|
const { createdBy, project } = event;
|
|
@@ -67,7 +169,7 @@ class FeatureEventFormatterMd {
|
|
|
67
169
|
}
|
|
68
170
|
featureLink(event) {
|
|
69
171
|
const { type, project = '', featureName } = event;
|
|
70
|
-
if (type ===
|
|
172
|
+
if (type === types_1.FEATURE_ARCHIVED) {
|
|
71
173
|
if (project) {
|
|
72
174
|
return `${this.unleashUrl}/projects/${project}/archive`;
|
|
73
175
|
}
|
|
@@ -77,11 +179,11 @@ class FeatureEventFormatterMd {
|
|
|
77
179
|
}
|
|
78
180
|
getAction(type) {
|
|
79
181
|
switch (type) {
|
|
80
|
-
case
|
|
182
|
+
case types_1.FEATURE_CREATED:
|
|
81
183
|
return 'created';
|
|
82
|
-
case
|
|
184
|
+
case types_1.FEATURE_UPDATED:
|
|
83
185
|
return 'updated';
|
|
84
|
-
case
|
|
186
|
+
case types_1.FEATURE_VARIANTS_UPDATED:
|
|
85
187
|
return 'updated variants for';
|
|
86
188
|
default:
|
|
87
189
|
return type;
|
|
@@ -95,22 +197,24 @@ class FeatureEventFormatterMd {
|
|
|
95
197
|
}
|
|
96
198
|
format(event) {
|
|
97
199
|
switch (event.type) {
|
|
98
|
-
case
|
|
99
|
-
case
|
|
200
|
+
case types_1.FEATURE_ARCHIVED:
|
|
201
|
+
case types_1.FEATURE_REVIVED:
|
|
100
202
|
return this.generateArchivedText(event);
|
|
101
|
-
case
|
|
102
|
-
case
|
|
203
|
+
case types_1.FEATURE_STALE_ON:
|
|
204
|
+
case types_1.FEATURE_STALE_OFF:
|
|
103
205
|
return this.generateStaleText(event);
|
|
104
|
-
case
|
|
105
|
-
case
|
|
206
|
+
case types_1.FEATURE_ENVIRONMENT_DISABLED:
|
|
207
|
+
case types_1.FEATURE_ENVIRONMENT_ENABLED:
|
|
106
208
|
return this.generateEnvironmentToggleText(event);
|
|
107
|
-
case
|
|
108
|
-
|
|
109
|
-
case
|
|
209
|
+
case types_1.FEATURE_STRATEGY_REMOVE:
|
|
210
|
+
return this.generateStrategyRemoveText(event);
|
|
211
|
+
case types_1.FEATURE_STRATEGY_ADD:
|
|
212
|
+
return this.generateStrategyAddText(event);
|
|
213
|
+
case types_1.FEATURE_STRATEGY_UPDATE:
|
|
110
214
|
return this.generateStrategyChangeText(event);
|
|
111
|
-
case
|
|
215
|
+
case types_1.FEATURE_METADATA_UPDATED:
|
|
112
216
|
return this.generateMetadataText(event);
|
|
113
|
-
case
|
|
217
|
+
case types_1.FEATURE_PROJECT_CHANGE:
|
|
114
218
|
return this.generateProjectChangeText(event);
|
|
115
219
|
default:
|
|
116
220
|
return this.defaultText(event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-event-formatter-md.js","sourceRoot":"","sources":["../../../src/lib/addons/feature-event-formatter-md.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"feature-event-formatter-md.js","sourceRoot":"","sources":["../../../src/lib/addons/feature-event-formatter-md.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const types_1 = require("../types");
|
|
4
|
+
const feature_event_formatter_md_1 = require("./feature-event-formatter-md");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
const testCases = [
|
|
7
|
+
[
|
|
8
|
+
'when groupId changed',
|
|
9
|
+
{
|
|
10
|
+
id: 920,
|
|
11
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
12
|
+
createdBy: 'user@company.com',
|
|
13
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
14
|
+
data: {
|
|
15
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
16
|
+
name: 'flexibleRollout',
|
|
17
|
+
constraints: [],
|
|
18
|
+
parameters: {
|
|
19
|
+
groupId: 'different-feature',
|
|
20
|
+
rollout: '32',
|
|
21
|
+
stickiness: 'default',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
preData: {
|
|
25
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
26
|
+
name: 'flexibleRollout',
|
|
27
|
+
parameters: {
|
|
28
|
+
groupId: 'new-feature',
|
|
29
|
+
rollout: '32',
|
|
30
|
+
stickiness: 'default',
|
|
31
|
+
},
|
|
32
|
+
constraints: [],
|
|
33
|
+
},
|
|
34
|
+
tags: [],
|
|
35
|
+
featureName: 'new-feature',
|
|
36
|
+
project: 'my-other-project',
|
|
37
|
+
environment: 'production',
|
|
38
|
+
},
|
|
39
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production* groupId from new-feature to different-feature',
|
|
40
|
+
],
|
|
41
|
+
[
|
|
42
|
+
'when rollout percentage changed',
|
|
43
|
+
{
|
|
44
|
+
id: 920,
|
|
45
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
46
|
+
createdBy: 'user@company.com',
|
|
47
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
48
|
+
data: {
|
|
49
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
50
|
+
name: 'flexibleRollout',
|
|
51
|
+
constraints: [],
|
|
52
|
+
parameters: {
|
|
53
|
+
groupId: 'new-feature',
|
|
54
|
+
rollout: '32',
|
|
55
|
+
stickiness: 'default',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
preData: {
|
|
59
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
60
|
+
name: 'flexibleRollout',
|
|
61
|
+
parameters: {
|
|
62
|
+
groupId: 'new-feature',
|
|
63
|
+
rollout: '67',
|
|
64
|
+
stickiness: 'default',
|
|
65
|
+
},
|
|
66
|
+
constraints: [],
|
|
67
|
+
},
|
|
68
|
+
tags: [],
|
|
69
|
+
featureName: 'new-feature',
|
|
70
|
+
project: 'my-other-project',
|
|
71
|
+
environment: 'production',
|
|
72
|
+
},
|
|
73
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production* rollout from 67% to 32%',
|
|
74
|
+
],
|
|
75
|
+
[
|
|
76
|
+
'when stickiness changed',
|
|
77
|
+
{
|
|
78
|
+
id: 920,
|
|
79
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
80
|
+
createdBy: 'user@company.com',
|
|
81
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
82
|
+
data: {
|
|
83
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
84
|
+
name: 'flexibleRollout',
|
|
85
|
+
constraints: [],
|
|
86
|
+
parameters: {
|
|
87
|
+
groupId: 'new-feature',
|
|
88
|
+
rollout: '67',
|
|
89
|
+
stickiness: 'random',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
preData: {
|
|
93
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
94
|
+
name: 'flexibleRollout',
|
|
95
|
+
parameters: {
|
|
96
|
+
groupId: 'new-feature',
|
|
97
|
+
rollout: '67',
|
|
98
|
+
stickiness: 'default',
|
|
99
|
+
},
|
|
100
|
+
constraints: [],
|
|
101
|
+
},
|
|
102
|
+
tags: [],
|
|
103
|
+
featureName: 'new-feature',
|
|
104
|
+
project: 'my-other-project',
|
|
105
|
+
environment: 'production',
|
|
106
|
+
},
|
|
107
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production* stickiness from default to random',
|
|
108
|
+
],
|
|
109
|
+
[
|
|
110
|
+
'when constraints and rollout percentage and stickiness changed',
|
|
111
|
+
{
|
|
112
|
+
id: 920,
|
|
113
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
114
|
+
createdBy: 'user@company.com',
|
|
115
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
116
|
+
data: {
|
|
117
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
118
|
+
name: 'flexibleRollout',
|
|
119
|
+
constraints: [
|
|
120
|
+
{
|
|
121
|
+
values: ['x', 'y'],
|
|
122
|
+
inverted: false,
|
|
123
|
+
operator: util_1.IN,
|
|
124
|
+
contextName: 'appName',
|
|
125
|
+
caseInsensitive: false,
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
parameters: {
|
|
129
|
+
groupId: 'new-feature',
|
|
130
|
+
rollout: '32',
|
|
131
|
+
stickiness: 'random',
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
preData: {
|
|
135
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
136
|
+
name: 'flexibleRollout',
|
|
137
|
+
parameters: {
|
|
138
|
+
groupId: 'new-feature',
|
|
139
|
+
rollout: '67',
|
|
140
|
+
stickiness: 'default',
|
|
141
|
+
},
|
|
142
|
+
constraints: [],
|
|
143
|
+
},
|
|
144
|
+
tags: [],
|
|
145
|
+
featureName: 'new-feature',
|
|
146
|
+
project: 'my-other-project',
|
|
147
|
+
environment: 'production',
|
|
148
|
+
},
|
|
149
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production* stickiness from default to random; rollout from 67% to 32%; constraints from empty set of constraints to [appName is one of (x,y)]',
|
|
150
|
+
],
|
|
151
|
+
[
|
|
152
|
+
'when neither rollout percentage nor stickiness changed',
|
|
153
|
+
{
|
|
154
|
+
id: 920,
|
|
155
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
156
|
+
createdBy: 'user@company.com',
|
|
157
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
158
|
+
data: {
|
|
159
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
160
|
+
name: 'flexibleRollout',
|
|
161
|
+
constraints: [],
|
|
162
|
+
parameters: {
|
|
163
|
+
groupId: 'new-feature',
|
|
164
|
+
rollout: '67',
|
|
165
|
+
stickiness: 'default',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
preData: {
|
|
169
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
170
|
+
name: 'flexibleRollout',
|
|
171
|
+
parameters: {
|
|
172
|
+
groupId: 'new-feature',
|
|
173
|
+
rollout: '67',
|
|
174
|
+
stickiness: 'default',
|
|
175
|
+
},
|
|
176
|
+
constraints: [],
|
|
177
|
+
},
|
|
178
|
+
tags: [],
|
|
179
|
+
featureName: 'new-feature',
|
|
180
|
+
project: 'my-other-project',
|
|
181
|
+
environment: 'production',
|
|
182
|
+
},
|
|
183
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy flexibleRollout in *production*',
|
|
184
|
+
],
|
|
185
|
+
[
|
|
186
|
+
'when strategy added',
|
|
187
|
+
{
|
|
188
|
+
id: 919,
|
|
189
|
+
type: types_1.FEATURE_STRATEGY_ADD,
|
|
190
|
+
createdBy: 'user@company.com',
|
|
191
|
+
createdAt: new Date('2022-06-01T10:03:08.290Z'),
|
|
192
|
+
data: {
|
|
193
|
+
id: '3f4bf713-696c-43a4-8ce7-d6c607108858',
|
|
194
|
+
name: 'flexibleRollout',
|
|
195
|
+
constraints: [],
|
|
196
|
+
parameters: {
|
|
197
|
+
groupId: 'new-feature',
|
|
198
|
+
rollout: '67',
|
|
199
|
+
stickiness: 'default',
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
preData: null,
|
|
203
|
+
tags: [],
|
|
204
|
+
featureName: 'new-feature',
|
|
205
|
+
project: 'my-other-project',
|
|
206
|
+
environment: 'production',
|
|
207
|
+
},
|
|
208
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by adding strategy flexibleRollout in *production*',
|
|
209
|
+
],
|
|
210
|
+
[
|
|
211
|
+
'when strategy removed',
|
|
212
|
+
{
|
|
213
|
+
id: 918,
|
|
214
|
+
type: types_1.FEATURE_STRATEGY_REMOVE,
|
|
215
|
+
createdBy: 'user@company.com',
|
|
216
|
+
createdAt: new Date('2022-06-01T10:03:00.229Z'),
|
|
217
|
+
data: null,
|
|
218
|
+
preData: {
|
|
219
|
+
id: '9591090e-acb0-4088-8958-21faaeb7147d',
|
|
220
|
+
name: 'default',
|
|
221
|
+
parameters: {},
|
|
222
|
+
constraints: [],
|
|
223
|
+
},
|
|
224
|
+
tags: [],
|
|
225
|
+
featureName: 'new-feature',
|
|
226
|
+
project: 'my-other-project',
|
|
227
|
+
environment: 'production',
|
|
228
|
+
},
|
|
229
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by removing strategy default in *production*',
|
|
230
|
+
],
|
|
231
|
+
...[
|
|
232
|
+
[util_1.IN, 'is one of'],
|
|
233
|
+
[util_1.NOT_IN, 'is not one of'],
|
|
234
|
+
[util_1.STR_CONTAINS, 'is a string that contains'],
|
|
235
|
+
[util_1.STR_STARTS_WITH, 'is a string that starts with'],
|
|
236
|
+
[util_1.STR_ENDS_WITH, 'is a string that ends with'],
|
|
237
|
+
].map(([operator, display]) => [
|
|
238
|
+
'when default strategy updated',
|
|
239
|
+
{
|
|
240
|
+
id: 39,
|
|
241
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
242
|
+
createdBy: 'admin',
|
|
243
|
+
createdAt: new Date('2023-02-20T20:23:28.791Z'),
|
|
244
|
+
data: {
|
|
245
|
+
id: 'f2d34aac-52ec-49d2-82d3-08d710e89eaa',
|
|
246
|
+
name: 'default',
|
|
247
|
+
constraints: [
|
|
248
|
+
{
|
|
249
|
+
values: ['x', 'y'],
|
|
250
|
+
inverted: false,
|
|
251
|
+
operator: operator,
|
|
252
|
+
contextName: 'appName',
|
|
253
|
+
caseInsensitive: false,
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
values: ['x'],
|
|
257
|
+
inverted: true,
|
|
258
|
+
operator: operator,
|
|
259
|
+
contextName: 'appName',
|
|
260
|
+
caseInsensitive: false,
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
parameters: {},
|
|
264
|
+
segments: [],
|
|
265
|
+
},
|
|
266
|
+
preData: {
|
|
267
|
+
id: 'f2d34aac-52ec-49d2-82d3-08d710e89eaa',
|
|
268
|
+
name: 'default',
|
|
269
|
+
segments: [],
|
|
270
|
+
parameters: {},
|
|
271
|
+
constraints: [],
|
|
272
|
+
},
|
|
273
|
+
tags: [],
|
|
274
|
+
featureName: 'aaa',
|
|
275
|
+
project: 'default',
|
|
276
|
+
environment: 'production',
|
|
277
|
+
},
|
|
278
|
+
`admin updated *[aaa](unleashUrl/projects/default/features/aaa)* in project *default* by updating strategy default in *production* constraints from empty set of constraints to [appName ${display} (x,y), appName not ${display} (x)]`,
|
|
279
|
+
]),
|
|
280
|
+
...[
|
|
281
|
+
[util_1.NUM_EQ, 'is a number equal to'],
|
|
282
|
+
[util_1.NUM_GT, 'is a number greater than'],
|
|
283
|
+
[util_1.NUM_GTE, 'is a number greater than or equal to'],
|
|
284
|
+
[util_1.NUM_LT, 'is a number less than'],
|
|
285
|
+
[util_1.NUM_LTE, 'is a number less than or equal to'],
|
|
286
|
+
[util_1.DATE_BEFORE, 'is a date before'],
|
|
287
|
+
[util_1.DATE_AFTER, 'is a date after'],
|
|
288
|
+
[util_1.SEMVER_EQ, 'is a SemVer equal to'],
|
|
289
|
+
[util_1.SEMVER_GT, 'is a SemVer greater than'],
|
|
290
|
+
[util_1.SEMVER_LT, 'is a SemVer less than'],
|
|
291
|
+
].map(([operator, display]) => [
|
|
292
|
+
'when default strategy updated with numeric constraint ' +
|
|
293
|
+
operator,
|
|
294
|
+
{
|
|
295
|
+
id: 39,
|
|
296
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
297
|
+
createdBy: 'admin',
|
|
298
|
+
createdAt: new Date('2023-02-20T20:23:28.791Z'),
|
|
299
|
+
data: {
|
|
300
|
+
id: 'f2d34aac-52ec-49d2-82d3-08d710e89eaa',
|
|
301
|
+
name: 'default',
|
|
302
|
+
constraints: [],
|
|
303
|
+
parameters: {},
|
|
304
|
+
segments: [],
|
|
305
|
+
},
|
|
306
|
+
preData: {
|
|
307
|
+
id: 'f2d34aac-52ec-49d2-82d3-08d710e89eaa',
|
|
308
|
+
name: 'default',
|
|
309
|
+
segments: [],
|
|
310
|
+
parameters: {},
|
|
311
|
+
constraints: [
|
|
312
|
+
{
|
|
313
|
+
value: '4',
|
|
314
|
+
values: [],
|
|
315
|
+
inverted: false,
|
|
316
|
+
operator: operator,
|
|
317
|
+
contextName: 'appName',
|
|
318
|
+
caseInsensitive: false,
|
|
319
|
+
},
|
|
320
|
+
],
|
|
321
|
+
},
|
|
322
|
+
tags: [],
|
|
323
|
+
featureName: 'aaa',
|
|
324
|
+
project: 'default',
|
|
325
|
+
environment: 'production',
|
|
326
|
+
},
|
|
327
|
+
`admin updated *[aaa](unleashUrl/projects/default/features/aaa)* in project *default* by updating strategy default in *production* constraints from [appName ${display} 4] to empty set of constraints`,
|
|
328
|
+
]),
|
|
329
|
+
[
|
|
330
|
+
'when userIds changed',
|
|
331
|
+
{
|
|
332
|
+
id: 920,
|
|
333
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
334
|
+
createdBy: 'user@company.com',
|
|
335
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
336
|
+
data: {
|
|
337
|
+
name: 'userWithId',
|
|
338
|
+
constraints: [
|
|
339
|
+
{
|
|
340
|
+
values: ['x', 'y'],
|
|
341
|
+
inverted: false,
|
|
342
|
+
operator: util_1.IN,
|
|
343
|
+
contextName: 'appName',
|
|
344
|
+
caseInsensitive: false,
|
|
345
|
+
},
|
|
346
|
+
],
|
|
347
|
+
parameters: {
|
|
348
|
+
userIds: 'a,b',
|
|
349
|
+
},
|
|
350
|
+
sortOrder: 9999,
|
|
351
|
+
id: '9a995d94-5944-4897-a82f-0f7e65c2fb3f',
|
|
352
|
+
},
|
|
353
|
+
preData: {
|
|
354
|
+
name: 'userWithId',
|
|
355
|
+
constraints: [],
|
|
356
|
+
parameters: {
|
|
357
|
+
userIds: '',
|
|
358
|
+
},
|
|
359
|
+
sortOrder: 9999,
|
|
360
|
+
id: '9a995d94-5944-4897-a82f-0f7e65c2fb3f',
|
|
361
|
+
},
|
|
362
|
+
tags: [],
|
|
363
|
+
featureName: 'new-feature',
|
|
364
|
+
project: 'my-other-project',
|
|
365
|
+
environment: 'production',
|
|
366
|
+
},
|
|
367
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy userWithId in *production* userIds from empty set of userIds to [a,b]; constraints from empty set of constraints to [appName is one of (x,y)]',
|
|
368
|
+
],
|
|
369
|
+
[
|
|
370
|
+
'when IPs changed',
|
|
371
|
+
{
|
|
372
|
+
id: 920,
|
|
373
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
374
|
+
createdBy: 'user@company.com',
|
|
375
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
376
|
+
data: {
|
|
377
|
+
name: 'remoteAddress',
|
|
378
|
+
constraints: [
|
|
379
|
+
{
|
|
380
|
+
values: ['x', 'y'],
|
|
381
|
+
inverted: false,
|
|
382
|
+
operator: util_1.IN,
|
|
383
|
+
contextName: 'appName',
|
|
384
|
+
caseInsensitive: false,
|
|
385
|
+
},
|
|
386
|
+
],
|
|
387
|
+
parameters: {
|
|
388
|
+
IPs: '127.0.0.1',
|
|
389
|
+
},
|
|
390
|
+
},
|
|
391
|
+
preData: {
|
|
392
|
+
name: 'remoteAddress',
|
|
393
|
+
constraints: [],
|
|
394
|
+
parameters: {
|
|
395
|
+
IPs: '',
|
|
396
|
+
},
|
|
397
|
+
},
|
|
398
|
+
tags: [],
|
|
399
|
+
featureName: 'new-feature',
|
|
400
|
+
project: 'my-other-project',
|
|
401
|
+
environment: 'production',
|
|
402
|
+
},
|
|
403
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy remoteAddress in *production* IPs from empty set of IPs to [127.0.0.1]; constraints from empty set of constraints to [appName is one of (x,y)]',
|
|
404
|
+
],
|
|
405
|
+
[
|
|
406
|
+
'when host names changed',
|
|
407
|
+
{
|
|
408
|
+
id: 920,
|
|
409
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
410
|
+
createdBy: 'user@company.com',
|
|
411
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
412
|
+
data: {
|
|
413
|
+
name: 'applicationHostname',
|
|
414
|
+
constraints: [
|
|
415
|
+
{
|
|
416
|
+
values: ['x', 'y'],
|
|
417
|
+
inverted: false,
|
|
418
|
+
operator: util_1.IN,
|
|
419
|
+
contextName: 'appName',
|
|
420
|
+
caseInsensitive: false,
|
|
421
|
+
},
|
|
422
|
+
],
|
|
423
|
+
parameters: {
|
|
424
|
+
hostNames: 'unleash.com',
|
|
425
|
+
},
|
|
426
|
+
},
|
|
427
|
+
preData: {
|
|
428
|
+
name: 'applicationHostname',
|
|
429
|
+
constraints: [],
|
|
430
|
+
parameters: {
|
|
431
|
+
hostNames: '',
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
tags: [],
|
|
435
|
+
featureName: 'new-feature',
|
|
436
|
+
project: 'my-other-project',
|
|
437
|
+
environment: 'production',
|
|
438
|
+
},
|
|
439
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy applicationHostname in *production* hostNames from empty set of hostNames to [unleash.com]; constraints from empty set of constraints to [appName is one of (x,y)]',
|
|
440
|
+
],
|
|
441
|
+
[
|
|
442
|
+
'when no specific text for strategy exists yet',
|
|
443
|
+
{
|
|
444
|
+
id: 920,
|
|
445
|
+
type: types_1.FEATURE_STRATEGY_UPDATE,
|
|
446
|
+
createdBy: 'user@company.com',
|
|
447
|
+
createdAt: new Date('2022-06-01T10:03:11.549Z'),
|
|
448
|
+
data: {
|
|
449
|
+
name: 'newStrategy',
|
|
450
|
+
constraints: [
|
|
451
|
+
{
|
|
452
|
+
values: ['x', 'y'],
|
|
453
|
+
inverted: false,
|
|
454
|
+
operator: util_1.IN,
|
|
455
|
+
contextName: 'appName',
|
|
456
|
+
caseInsensitive: false,
|
|
457
|
+
},
|
|
458
|
+
],
|
|
459
|
+
parameters: {
|
|
460
|
+
IPs: '127.0.0.1',
|
|
461
|
+
},
|
|
462
|
+
},
|
|
463
|
+
preData: {
|
|
464
|
+
name: 'newStrategy',
|
|
465
|
+
constraints: [],
|
|
466
|
+
parameters: {
|
|
467
|
+
IPs: '',
|
|
468
|
+
},
|
|
469
|
+
},
|
|
470
|
+
tags: [],
|
|
471
|
+
featureName: 'new-feature',
|
|
472
|
+
project: 'my-other-project',
|
|
473
|
+
environment: 'production',
|
|
474
|
+
},
|
|
475
|
+
'user@company.com updated *[new-feature](unleashUrl/projects/my-other-project/features/new-feature)* in project *my-other-project* by updating strategy newStrategy in *production*',
|
|
476
|
+
],
|
|
477
|
+
];
|
|
478
|
+
testCases.forEach(([description, event, expected]) => test('Should format specialised text for events ' + description, () => {
|
|
479
|
+
const formatter = new feature_event_formatter_md_1.FeatureEventFormatterMd('unleashUrl');
|
|
480
|
+
const actual = formatter.format(event);
|
|
481
|
+
expect(actual).toBe(expected);
|
|
482
|
+
}));
|
|
483
|
+
//# sourceMappingURL=feature-event-formatter-md.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-event-formatter-md.test.js","sourceRoot":"","sources":["../../../src/lib/addons/feature-event-formatter-md.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unleash-server",
|
|
3
3
|
"description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
|
|
4
|
-
"version": "4.22.0-beta.
|
|
4
|
+
"version": "4.22.0-beta.8",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"unleash",
|
|
7
7
|
"feature toggle",
|