@mozilla/nimbus-schemas 3001.0.0 → 3002.0.0
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/index.d.ts +8 -0
- package/package.json +1 -1
- package/schemas/DesktopAllVersionsNimbusExperiment.schema.json +131 -129
- package/schemas/DesktopFeature.schema.json +30 -30
- package/schemas/DesktopFeatureManifest.schema.json +30 -30
- package/schemas/DesktopNimbusExperiment.schema.json +124 -123
- package/schemas/ExperimentBucketConfig.schema.json +6 -6
- package/schemas/ExperimentFeatureConfig.schema.json +1 -0
- package/schemas/ExperimentOutcome.schema.json +4 -4
- package/schemas/NimbusExperimentV7.schema.json +103 -102
- package/schemas/SdkFeatureManifest.schema.json +40 -12
- package/schemas/SdkNimbusExperiment.schema.json +97 -96
|
@@ -24,33 +24,41 @@
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"properties": {
|
|
27
|
+
"allowCoenrollment": {
|
|
28
|
+
"description": "If true, clients can enroll in multiple experiments and rollouts that use this feature.",
|
|
29
|
+
"type": "boolean"
|
|
30
|
+
},
|
|
31
|
+
"applications": {
|
|
32
|
+
"description": "The applications that can enroll in experiments for this feature. Defaults to \"firefox-desktop\".",
|
|
33
|
+
"items": {
|
|
34
|
+
"$ref": "#/$defs/DesktopApplication"
|
|
35
|
+
},
|
|
36
|
+
"minLength": 1,
|
|
37
|
+
"type": "array"
|
|
38
|
+
},
|
|
27
39
|
"description": {
|
|
28
40
|
"description": "The description of the feature.",
|
|
29
41
|
"type": "string"
|
|
30
42
|
},
|
|
31
|
-
"hasExposure": {
|
|
32
|
-
"description": "Whether or not this feature records exposure telemetry.",
|
|
33
|
-
"type": "boolean"
|
|
34
|
-
},
|
|
35
43
|
"exposureDescription": {
|
|
36
44
|
"description": "A description of the exposure telemetry collected by this feature. Only required if hasExposure is true.",
|
|
37
45
|
"type": "string"
|
|
38
46
|
},
|
|
39
|
-
"
|
|
40
|
-
"description": "
|
|
41
|
-
"type": "
|
|
47
|
+
"hasExposure": {
|
|
48
|
+
"description": "Whether or not this feature records exposure telemetry.",
|
|
49
|
+
"type": "boolean"
|
|
42
50
|
},
|
|
43
51
|
"isEarlyStartup": {
|
|
44
52
|
"description": "If true, the feature values will be cached in prefs so that they can be read before Nimbus is initialized during Firefox startup.",
|
|
45
53
|
"type": "boolean"
|
|
46
54
|
},
|
|
47
|
-
"
|
|
48
|
-
"description": "The
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
"
|
|
55
|
+
"owner": {
|
|
56
|
+
"description": "The owner of the feature.",
|
|
57
|
+
"type": "string"
|
|
58
|
+
},
|
|
59
|
+
"schema": {
|
|
60
|
+
"$ref": "#/$defs/NimbusFeatureSchema",
|
|
61
|
+
"description": "An optional JSON schema that describes the feature variables."
|
|
54
62
|
},
|
|
55
63
|
"variables": {
|
|
56
64
|
"additionalProperties": {
|
|
@@ -58,14 +66,6 @@
|
|
|
58
66
|
},
|
|
59
67
|
"description": "The variables that this feature can set.",
|
|
60
68
|
"type": "object"
|
|
61
|
-
},
|
|
62
|
-
"schema": {
|
|
63
|
-
"$ref": "#/$defs/NimbusFeatureSchema",
|
|
64
|
-
"description": "An optional JSON schema that describes the feature variables."
|
|
65
|
-
},
|
|
66
|
-
"allowCoenrollment": {
|
|
67
|
-
"description": "If true, clients can enroll in multiple experiments and rollouts that use this feature.",
|
|
68
|
-
"type": "boolean"
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"required": [
|
|
@@ -178,10 +178,6 @@
|
|
|
178
178
|
"description": "A description of the feature.",
|
|
179
179
|
"type": "string"
|
|
180
180
|
},
|
|
181
|
-
"type": {
|
|
182
|
-
"$ref": "#/$defs/FeatureVariableType",
|
|
183
|
-
"description": "The field type."
|
|
184
|
-
},
|
|
185
181
|
"enum": {
|
|
186
182
|
"anyOf": [
|
|
187
183
|
{
|
|
@@ -213,6 +209,10 @@
|
|
|
213
209
|
}
|
|
214
210
|
],
|
|
215
211
|
"description": "A pref that should be set to the value of this variable when enrolling in experiments. Using a string is deprecated and unsupported in Firefox 124+."
|
|
212
|
+
},
|
|
213
|
+
"type": {
|
|
214
|
+
"$ref": "#/$defs/FeatureVariableType",
|
|
215
|
+
"description": "The field type."
|
|
216
216
|
}
|
|
217
217
|
},
|
|
218
218
|
"required": [
|
|
@@ -233,13 +233,13 @@
|
|
|
233
233
|
"NimbusFeatureSchema": {
|
|
234
234
|
"description": "Information about a JSON schema.",
|
|
235
235
|
"properties": {
|
|
236
|
-
"uri": {
|
|
237
|
-
"description": "The resource:// or chrome:// URI that can be loaded at runtime within Firefox. Required by Firefox so that Nimbus can import the schema for validation.",
|
|
238
|
-
"type": "string"
|
|
239
|
-
},
|
|
240
236
|
"path": {
|
|
241
237
|
"description": "The path to the schema file in the source checkout. Required by Experimenter so that it can find schema files in source checkouts.",
|
|
242
238
|
"type": "string"
|
|
239
|
+
},
|
|
240
|
+
"uri": {
|
|
241
|
+
"description": "The resource:// or chrome:// URI that can be loaded at runtime within Firefox. Required by Firefox so that Nimbus can import the schema for validation.",
|
|
242
|
+
"type": "string"
|
|
243
243
|
}
|
|
244
244
|
},
|
|
245
245
|
"required": [
|
|
@@ -4,76 +4,42 @@
|
|
|
4
4
|
"description": "A Nimbus experiment for Firefox Desktop. This schema is less strict than DesktopAllVersionsNimbusExperiment and is intended for use in Firefox Desktop.",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"properties": {
|
|
7
|
-
"schemaVersion": {
|
|
8
|
-
"description": "Version of the NimbusExperiment schema this experiment refers to",
|
|
9
|
-
"type": "string"
|
|
10
|
-
},
|
|
11
|
-
"slug": {
|
|
12
|
-
"description": "Unique identifier for the experiment",
|
|
13
|
-
"type": "string"
|
|
14
|
-
},
|
|
15
|
-
"id": {
|
|
16
|
-
"description": "Unique identifier for the experiiment. This is a duplicate of slug, but is required field for all Remote Settings records.",
|
|
17
|
-
"type": "string"
|
|
18
|
-
},
|
|
19
|
-
"appName": {
|
|
20
|
-
"description": "A slug identifying the targeted product of this experiment. It should be a lowercased_with_underscores name that is short and unambiguous and it should match the app_name found in https://probeinfo.telemetry.mozilla.org/glean/repositories. Examples are \"fenix\" and \"firefox_desktop\".",
|
|
21
|
-
"type": "string"
|
|
22
|
-
},
|
|
23
7
|
"appId": {
|
|
24
8
|
"description": "The platform identifier for the targeted app. This should match app's identifier exactly as it appears in the relevant app store listing (for relevant platforms) or the app's Glean initialization (for other platforms). Examples are \"org.mozilla.firefox_beta\" and \"firefox-desktop\".",
|
|
25
9
|
"type": "string"
|
|
26
10
|
},
|
|
27
|
-
"
|
|
28
|
-
"description": "A
|
|
29
|
-
"type": "string"
|
|
30
|
-
},
|
|
31
|
-
"userFacingName": {
|
|
32
|
-
"description": "Public name of the experiment that will be displayed on \"about:studies\".",
|
|
33
|
-
"type": "string"
|
|
34
|
-
},
|
|
35
|
-
"userFacingDescription": {
|
|
36
|
-
"description": "Short public description of the experiment that will be displayed on \"about:studies\".",
|
|
11
|
+
"appName": {
|
|
12
|
+
"description": "A slug identifying the targeted product of this experiment. It should be a lowercased_with_underscores name that is short and unambiguous and it should match the app_name found in https://probeinfo.telemetry.mozilla.org/glean/repositories. Examples are \"fenix\" and \"firefox_desktop\".",
|
|
37
13
|
"type": "string"
|
|
38
14
|
},
|
|
39
|
-
"
|
|
40
|
-
"description": "
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
"type": "boolean"
|
|
15
|
+
"branches": {
|
|
16
|
+
"description": "Branch configuration for the experiment.",
|
|
17
|
+
"items": {
|
|
18
|
+
"$ref": "#/$defs/DesktopExperimentBranch"
|
|
19
|
+
},
|
|
20
|
+
"type": "array"
|
|
46
21
|
},
|
|
47
22
|
"bucketConfig": {
|
|
48
23
|
"$ref": "#/$defs/ExperimentBucketConfig",
|
|
49
24
|
"description": "Bucketing configuration."
|
|
50
25
|
},
|
|
51
|
-
"
|
|
52
|
-
"description": "A
|
|
53
|
-
"
|
|
54
|
-
"$ref": "#/$defs/ExperimentOutcome"
|
|
55
|
-
},
|
|
56
|
-
"type": "array"
|
|
57
|
-
},
|
|
58
|
-
"featureIds": {
|
|
59
|
-
"description": "A list of featureIds the experiment contains configurations for.",
|
|
60
|
-
"items": {
|
|
61
|
-
"type": "string"
|
|
62
|
-
},
|
|
63
|
-
"type": "array"
|
|
26
|
+
"channel": {
|
|
27
|
+
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\".",
|
|
28
|
+
"type": "string"
|
|
64
29
|
},
|
|
65
|
-
"
|
|
30
|
+
"endDate": {
|
|
66
31
|
"anyOf": [
|
|
67
32
|
{
|
|
33
|
+
"format": "date",
|
|
68
34
|
"type": "string"
|
|
69
35
|
},
|
|
70
36
|
{
|
|
71
37
|
"type": "null"
|
|
72
38
|
}
|
|
73
39
|
],
|
|
74
|
-
"description": "
|
|
40
|
+
"description": "Actual end date of this experiment. Note that this field is expected to be null in Remote Settings."
|
|
75
41
|
},
|
|
76
|
-
"
|
|
42
|
+
"enrollmentEndDate": {
|
|
77
43
|
"anyOf": [
|
|
78
44
|
{
|
|
79
45
|
"format": "date",
|
|
@@ -83,41 +49,59 @@
|
|
|
83
49
|
"type": "null"
|
|
84
50
|
}
|
|
85
51
|
],
|
|
86
|
-
"description": "Actual
|
|
52
|
+
"description": "Actual enrollment end date of the experiment. Note that this value is expected to be null in Remote Settings."
|
|
87
53
|
},
|
|
88
|
-
"
|
|
54
|
+
"featureIds": {
|
|
55
|
+
"description": "A list of featureIds the experiment contains configurations for.",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "string"
|
|
58
|
+
},
|
|
59
|
+
"type": "array"
|
|
60
|
+
},
|
|
61
|
+
"featureValidationOptOut": {
|
|
62
|
+
"description": "Opt out of feature schema validation.",
|
|
63
|
+
"type": "boolean"
|
|
64
|
+
},
|
|
65
|
+
"firefoxLabsDescription": {
|
|
89
66
|
"anyOf": [
|
|
90
67
|
{
|
|
91
|
-
"format": "date",
|
|
92
68
|
"type": "string"
|
|
93
69
|
},
|
|
94
70
|
{
|
|
95
71
|
"type": "null"
|
|
96
72
|
}
|
|
97
73
|
],
|
|
98
|
-
"description": "
|
|
74
|
+
"description": "The description shown in Firefox Labs (Fluent ID)"
|
|
99
75
|
},
|
|
100
|
-
"
|
|
76
|
+
"firefoxLabsDescriptionLinks": {
|
|
101
77
|
"anyOf": [
|
|
102
78
|
{
|
|
103
|
-
"
|
|
104
|
-
|
|
79
|
+
"additionalProperties": {
|
|
80
|
+
"format": "uri",
|
|
81
|
+
"maxLength": 2083,
|
|
82
|
+
"minLength": 1,
|
|
83
|
+
"type": "string"
|
|
84
|
+
},
|
|
85
|
+
"type": "object"
|
|
105
86
|
},
|
|
106
87
|
{
|
|
107
88
|
"type": "null"
|
|
108
89
|
}
|
|
109
90
|
],
|
|
110
|
-
"description": "
|
|
111
|
-
},
|
|
112
|
-
"proposedDuration": {
|
|
113
|
-
"description": "Duration of the experiment from the start date in days. Note that this property is only used during the analysis phase (i.e., not by the SDK).",
|
|
114
|
-
"type": "integer"
|
|
91
|
+
"description": "Links that will be used with the firefoxLabsDescription Fluent ID. May be null for Firefox Labs Opt-In recipes that do not use links."
|
|
115
92
|
},
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
|
|
93
|
+
"firefoxLabsGroup": {
|
|
94
|
+
"anyOf": [
|
|
95
|
+
{
|
|
96
|
+
"type": "string"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"type": "null"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"description": "The group this should appear under in Firefox Labs"
|
|
119
103
|
},
|
|
120
|
-
"
|
|
104
|
+
"firefoxLabsTitle": {
|
|
121
105
|
"anyOf": [
|
|
122
106
|
{
|
|
123
107
|
"type": "string"
|
|
@@ -126,7 +110,23 @@
|
|
|
126
110
|
"type": "null"
|
|
127
111
|
}
|
|
128
112
|
],
|
|
129
|
-
"description": "The
|
|
113
|
+
"description": "The title shown in Firefox Labs (Fluent ID)"
|
|
114
|
+
},
|
|
115
|
+
"id": {
|
|
116
|
+
"description": "Unique identifier for the experiiment. This is a duplicate of slug, but is required field for all Remote Settings records.",
|
|
117
|
+
"type": "string"
|
|
118
|
+
},
|
|
119
|
+
"isEnrollmentPaused": {
|
|
120
|
+
"description": "When this property is set to true, the SDK should not enroll new users into the experiment that have not already been enrolled.",
|
|
121
|
+
"type": "boolean"
|
|
122
|
+
},
|
|
123
|
+
"isFirefoxLabsOptIn": {
|
|
124
|
+
"description": "When this property is set to true, treat this experiment as aFirefox Labs experiment",
|
|
125
|
+
"type": "boolean"
|
|
126
|
+
},
|
|
127
|
+
"isRollout": {
|
|
128
|
+
"description": "When this property is set to true, treat this experiment as a rollout. Rollouts are currently handled as single-branch experiments separated from the bucketing namespace for normal experiments. See-also: https://mozilla-hub.atlassian.net/browse/SDK-405",
|
|
129
|
+
"type": "boolean"
|
|
130
130
|
},
|
|
131
131
|
"locales": {
|
|
132
132
|
"anyOf": [
|
|
@@ -152,41 +152,34 @@
|
|
|
152
152
|
}
|
|
153
153
|
]
|
|
154
154
|
},
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
{
|
|
158
|
-
"format": "date-time",
|
|
159
|
-
"type": "string"
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
"type": "null"
|
|
163
|
-
}
|
|
164
|
-
],
|
|
165
|
-
"description": "The date that this experiment was first published to Remote Settings. If null, it has not yet been published."
|
|
166
|
-
},
|
|
167
|
-
"branches": {
|
|
168
|
-
"description": "Branch configuration for the experiment.",
|
|
155
|
+
"outcomes": {
|
|
156
|
+
"description": "A list of outcomes relevant to the experiment analysis.",
|
|
169
157
|
"items": {
|
|
170
|
-
"$ref": "#/$defs/
|
|
158
|
+
"$ref": "#/$defs/ExperimentOutcome"
|
|
171
159
|
},
|
|
172
160
|
"type": "array"
|
|
173
161
|
},
|
|
174
|
-
"
|
|
175
|
-
"description": "
|
|
176
|
-
"type": "
|
|
162
|
+
"proposedDuration": {
|
|
163
|
+
"description": "Duration of the experiment from the start date in days. Note that this property is only used during the analysis phase (i.e., not by the SDK).",
|
|
164
|
+
"type": "integer"
|
|
177
165
|
},
|
|
178
|
-
"
|
|
166
|
+
"proposedEnrollment": {
|
|
167
|
+
"description": "This represents the number of days that we expect to enroll new users. Note that this property is only used during the analysis phase (i.e., not by the SDK).",
|
|
168
|
+
"type": "integer"
|
|
169
|
+
},
|
|
170
|
+
"publishedDate": {
|
|
179
171
|
"anyOf": [
|
|
180
172
|
{
|
|
173
|
+
"format": "date-time",
|
|
181
174
|
"type": "string"
|
|
182
175
|
},
|
|
183
176
|
{
|
|
184
177
|
"type": "null"
|
|
185
178
|
}
|
|
186
179
|
],
|
|
187
|
-
"description": "The
|
|
180
|
+
"description": "The date that this experiment was first published to Remote Settings. If null, it has not yet been published."
|
|
188
181
|
},
|
|
189
|
-
"
|
|
182
|
+
"referenceBranch": {
|
|
190
183
|
"anyOf": [
|
|
191
184
|
{
|
|
192
185
|
"type": "string"
|
|
@@ -195,43 +188,50 @@
|
|
|
195
188
|
"type": "null"
|
|
196
189
|
}
|
|
197
190
|
],
|
|
198
|
-
"description": "The
|
|
191
|
+
"description": "The slug of the reference branch (i.e., the branch we consider \"control\")."
|
|
199
192
|
},
|
|
200
|
-
"
|
|
193
|
+
"requiresRestart": {
|
|
194
|
+
"description": "Does the experiment require a restart to take effect? Only used by Firefox Labs Opt-Ins.",
|
|
195
|
+
"type": "boolean"
|
|
196
|
+
},
|
|
197
|
+
"schemaVersion": {
|
|
198
|
+
"description": "Version of the NimbusExperiment schema this experiment refers to",
|
|
199
|
+
"type": "string"
|
|
200
|
+
},
|
|
201
|
+
"slug": {
|
|
202
|
+
"description": "Unique identifier for the experiment",
|
|
203
|
+
"type": "string"
|
|
204
|
+
},
|
|
205
|
+
"startDate": {
|
|
201
206
|
"anyOf": [
|
|
202
207
|
{
|
|
208
|
+
"format": "date",
|
|
203
209
|
"type": "string"
|
|
204
210
|
},
|
|
205
211
|
{
|
|
206
212
|
"type": "null"
|
|
207
213
|
}
|
|
208
214
|
],
|
|
209
|
-
"description": "
|
|
215
|
+
"description": "Actual publish date of the experiment. Note that this value is expected to be null in Remote Settings."
|
|
210
216
|
},
|
|
211
|
-
"
|
|
217
|
+
"targeting": {
|
|
212
218
|
"anyOf": [
|
|
213
219
|
{
|
|
214
|
-
"
|
|
215
|
-
"format": "uri",
|
|
216
|
-
"maxLength": 2083,
|
|
217
|
-
"minLength": 1,
|
|
218
|
-
"type": "string"
|
|
219
|
-
},
|
|
220
|
-
"type": "object"
|
|
220
|
+
"type": "string"
|
|
221
221
|
},
|
|
222
222
|
{
|
|
223
223
|
"type": "null"
|
|
224
224
|
}
|
|
225
225
|
],
|
|
226
|
-
"description": "
|
|
226
|
+
"description": "A JEXL targeting expression used to filter out experiments."
|
|
227
227
|
},
|
|
228
|
-
"
|
|
229
|
-
"description": "
|
|
230
|
-
"type": "
|
|
228
|
+
"userFacingDescription": {
|
|
229
|
+
"description": "Short public description of the experiment that will be displayed on \"about:studies\".",
|
|
230
|
+
"type": "string"
|
|
231
231
|
},
|
|
232
|
-
"
|
|
233
|
-
"description": "
|
|
234
|
-
"type": "
|
|
232
|
+
"userFacingName": {
|
|
233
|
+
"description": "Public name of the experiment that will be displayed on \"about:studies\".",
|
|
234
|
+
"type": "string"
|
|
235
235
|
}
|
|
236
236
|
},
|
|
237
237
|
"required": [
|
|
@@ -296,14 +296,6 @@
|
|
|
296
296
|
"DesktopExperimentBranch": {
|
|
297
297
|
"description": "The branch definition supported on Firefox Desktop 95+.",
|
|
298
298
|
"properties": {
|
|
299
|
-
"slug": {
|
|
300
|
-
"description": "Identifier for the branch.",
|
|
301
|
-
"type": "string"
|
|
302
|
-
},
|
|
303
|
-
"ratio": {
|
|
304
|
-
"description": "Relative ratio of population for the branch. e.g., if branch A=1 and branch B=3, then branch A would get 25% of the population.",
|
|
305
|
-
"type": "integer"
|
|
306
|
-
},
|
|
307
299
|
"features": {
|
|
308
300
|
"description": "An array of feature configurations.",
|
|
309
301
|
"items": {
|
|
@@ -321,6 +313,14 @@
|
|
|
321
313
|
}
|
|
322
314
|
],
|
|
323
315
|
"description": "The branch title shown in Firefox Labs (Fluent ID)"
|
|
316
|
+
},
|
|
317
|
+
"ratio": {
|
|
318
|
+
"description": "Relative ratio of population for the branch. e.g., if branch A=1 and branch B=3, then branch A would get 25% of the population.",
|
|
319
|
+
"type": "integer"
|
|
320
|
+
},
|
|
321
|
+
"slug": {
|
|
322
|
+
"description": "Identifier for the branch.",
|
|
323
|
+
"type": "string"
|
|
324
324
|
}
|
|
325
325
|
},
|
|
326
326
|
"required": [
|
|
@@ -332,21 +332,21 @@
|
|
|
332
332
|
},
|
|
333
333
|
"ExperimentBucketConfig": {
|
|
334
334
|
"properties": {
|
|
335
|
-
"
|
|
336
|
-
"
|
|
335
|
+
"count": {
|
|
336
|
+
"description": "Number of buckets in the range.",
|
|
337
|
+
"type": "integer"
|
|
337
338
|
},
|
|
338
339
|
"namespace": {
|
|
339
340
|
"description": "Additional inputs to the hashing function.",
|
|
340
341
|
"type": "string"
|
|
341
342
|
},
|
|
343
|
+
"randomizationUnit": {
|
|
344
|
+
"$ref": "#/$defs/RandomizationUnit"
|
|
345
|
+
},
|
|
342
346
|
"start": {
|
|
343
347
|
"description": "Index of the starting bucket of the range.",
|
|
344
348
|
"type": "integer"
|
|
345
349
|
},
|
|
346
|
-
"count": {
|
|
347
|
-
"description": "Number of buckets in the range.",
|
|
348
|
-
"type": "integer"
|
|
349
|
-
},
|
|
350
350
|
"total": {
|
|
351
351
|
"description": "The total number of buckets. You can assume this will always be 10000.",
|
|
352
352
|
"type": "integer"
|
|
@@ -368,6 +368,7 @@
|
|
|
368
368
|
"type": "string"
|
|
369
369
|
},
|
|
370
370
|
"value": {
|
|
371
|
+
"additionalProperties": true,
|
|
371
372
|
"description": "The values that define the feature configuration. This should be validated against a schema.",
|
|
372
373
|
"type": "object"
|
|
373
374
|
}
|
|
@@ -390,13 +391,13 @@
|
|
|
390
391
|
},
|
|
391
392
|
"ExperimentOutcome": {
|
|
392
393
|
"properties": {
|
|
393
|
-
"slug": {
|
|
394
|
-
"description": "Identifier for the outcome.",
|
|
395
|
-
"type": "string"
|
|
396
|
-
},
|
|
397
394
|
"priority": {
|
|
398
395
|
"description": "e.g., \"primary\" or \"secondary\".",
|
|
399
396
|
"type": "string"
|
|
397
|
+
},
|
|
398
|
+
"slug": {
|
|
399
|
+
"description": "Identifier for the outcome.",
|
|
400
|
+
"type": "string"
|
|
400
401
|
}
|
|
401
402
|
},
|
|
402
403
|
"required": [
|
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
"title": "ExperimentBucketConfig",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
6
|
-
"
|
|
7
|
-
"
|
|
6
|
+
"count": {
|
|
7
|
+
"description": "Number of buckets in the range.",
|
|
8
|
+
"type": "integer"
|
|
8
9
|
},
|
|
9
10
|
"namespace": {
|
|
10
11
|
"description": "Additional inputs to the hashing function.",
|
|
11
12
|
"type": "string"
|
|
12
13
|
},
|
|
14
|
+
"randomizationUnit": {
|
|
15
|
+
"$ref": "#/$defs/RandomizationUnit"
|
|
16
|
+
},
|
|
13
17
|
"start": {
|
|
14
18
|
"description": "Index of the starting bucket of the range.",
|
|
15
19
|
"type": "integer"
|
|
16
20
|
},
|
|
17
|
-
"count": {
|
|
18
|
-
"description": "Number of buckets in the range.",
|
|
19
|
-
"type": "integer"
|
|
20
|
-
},
|
|
21
21
|
"total": {
|
|
22
22
|
"description": "The total number of buckets. You can assume this will always be 10000.",
|
|
23
23
|
"type": "integer"
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"title": "ExperimentOutcome",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"properties": {
|
|
6
|
-
"slug": {
|
|
7
|
-
"description": "Identifier for the outcome.",
|
|
8
|
-
"type": "string"
|
|
9
|
-
},
|
|
10
6
|
"priority": {
|
|
11
7
|
"description": "e.g., \"primary\" or \"secondary\".",
|
|
12
8
|
"type": "string"
|
|
9
|
+
},
|
|
10
|
+
"slug": {
|
|
11
|
+
"description": "Identifier for the outcome.",
|
|
12
|
+
"type": "string"
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"required": [
|