@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
|
@@ -4,76 +4,42 @@
|
|
|
4
4
|
"description": "A Nimbus experiment for Nimbus SDK-based applications.",
|
|
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 SDK experiment.",
|
|
17
|
+
"items": {
|
|
18
|
+
"$ref": "#/$defs/SdkExperimentBranch"
|
|
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,31 +49,58 @@
|
|
|
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
|
+
"id": {
|
|
62
|
+
"description": "Unique identifier for the experiiment. This is a duplicate of slug, but is required field for all Remote Settings records.",
|
|
63
|
+
"type": "string"
|
|
64
|
+
},
|
|
65
|
+
"isEnrollmentPaused": {
|
|
66
|
+
"description": "When this property is set to true, the SDK should not enroll new users into the experiment that have not already been enrolled.",
|
|
67
|
+
"type": "boolean"
|
|
68
|
+
},
|
|
69
|
+
"isRollout": {
|
|
70
|
+
"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",
|
|
71
|
+
"type": "boolean"
|
|
72
|
+
},
|
|
73
|
+
"locales": {
|
|
89
74
|
"anyOf": [
|
|
90
75
|
{
|
|
91
|
-
"
|
|
92
|
-
|
|
76
|
+
"items": {
|
|
77
|
+
"type": "string"
|
|
78
|
+
},
|
|
79
|
+
"type": "array"
|
|
93
80
|
},
|
|
94
81
|
{
|
|
95
82
|
"type": "null"
|
|
96
83
|
}
|
|
97
84
|
],
|
|
98
|
-
"description": "
|
|
85
|
+
"description": "The list of locale codes (e.g., \"en-US\" or \"fr\") that this experiment is targeting. If null, all locales are targeted."
|
|
99
86
|
},
|
|
100
|
-
"
|
|
87
|
+
"localizations": {
|
|
101
88
|
"anyOf": [
|
|
102
89
|
{
|
|
103
|
-
"
|
|
104
|
-
"type": "string"
|
|
90
|
+
"$ref": "#/$defs/ExperimentLocalizations"
|
|
105
91
|
},
|
|
106
92
|
{
|
|
107
93
|
"type": "null"
|
|
108
94
|
}
|
|
109
95
|
],
|
|
110
|
-
"description": "
|
|
96
|
+
"description": "Per-locale localization substitutions."
|
|
97
|
+
},
|
|
98
|
+
"outcomes": {
|
|
99
|
+
"description": "A list of outcomes relevant to the experiment analysis.",
|
|
100
|
+
"items": {
|
|
101
|
+
"$ref": "#/$defs/ExperimentOutcome"
|
|
102
|
+
},
|
|
103
|
+
"type": "array"
|
|
111
104
|
},
|
|
112
105
|
"proposedDuration": {
|
|
113
106
|
"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).",
|
|
@@ -117,60 +110,67 @@
|
|
|
117
110
|
"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).",
|
|
118
111
|
"type": "integer"
|
|
119
112
|
},
|
|
120
|
-
"
|
|
113
|
+
"publishedDate": {
|
|
121
114
|
"anyOf": [
|
|
122
115
|
{
|
|
116
|
+
"format": "date-time",
|
|
123
117
|
"type": "string"
|
|
124
118
|
},
|
|
125
119
|
{
|
|
126
120
|
"type": "null"
|
|
127
121
|
}
|
|
128
122
|
],
|
|
129
|
-
"description": "The
|
|
123
|
+
"description": "The date that this experiment was first published to Remote Settings. If null, it has not yet been published."
|
|
130
124
|
},
|
|
131
|
-
"
|
|
125
|
+
"referenceBranch": {
|
|
132
126
|
"anyOf": [
|
|
133
127
|
{
|
|
134
|
-
"
|
|
135
|
-
"type": "string"
|
|
136
|
-
},
|
|
137
|
-
"type": "array"
|
|
128
|
+
"type": "string"
|
|
138
129
|
},
|
|
139
130
|
{
|
|
140
131
|
"type": "null"
|
|
141
132
|
}
|
|
142
133
|
],
|
|
143
|
-
"description": "The
|
|
134
|
+
"description": "The slug of the reference branch (i.e., the branch we consider \"control\")."
|
|
144
135
|
},
|
|
145
|
-
"
|
|
136
|
+
"schemaVersion": {
|
|
137
|
+
"description": "Version of the NimbusExperiment schema this experiment refers to",
|
|
138
|
+
"type": "string"
|
|
139
|
+
},
|
|
140
|
+
"slug": {
|
|
141
|
+
"description": "Unique identifier for the experiment",
|
|
142
|
+
"type": "string"
|
|
143
|
+
},
|
|
144
|
+
"startDate": {
|
|
146
145
|
"anyOf": [
|
|
147
146
|
{
|
|
148
|
-
"
|
|
147
|
+
"format": "date",
|
|
148
|
+
"type": "string"
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"type": "null"
|
|
152
152
|
}
|
|
153
153
|
],
|
|
154
|
-
"description": "
|
|
154
|
+
"description": "Actual publish date of the experiment. Note that this value is expected to be null in Remote Settings."
|
|
155
155
|
},
|
|
156
|
-
"
|
|
156
|
+
"targeting": {
|
|
157
157
|
"anyOf": [
|
|
158
158
|
{
|
|
159
|
-
"format": "date-time",
|
|
160
159
|
"type": "string"
|
|
161
160
|
},
|
|
162
161
|
{
|
|
163
162
|
"type": "null"
|
|
164
163
|
}
|
|
165
164
|
],
|
|
166
|
-
"description": "
|
|
165
|
+
"description": "A JEXL targeting expression used to filter out experiments."
|
|
167
166
|
},
|
|
168
|
-
"
|
|
169
|
-
"description": "
|
|
170
|
-
"
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
"
|
|
167
|
+
"userFacingDescription": {
|
|
168
|
+
"description": "Short public description of the experiment that will be displayed on \"about:studies\".",
|
|
169
|
+
"type": "string"
|
|
170
|
+
},
|
|
171
|
+
"userFacingName": {
|
|
172
|
+
"description": "Public name of the experiment that will be displayed on \"about:studies\".",
|
|
173
|
+
"type": "string"
|
|
174
174
|
}
|
|
175
175
|
},
|
|
176
176
|
"required": [
|
|
@@ -194,21 +194,21 @@
|
|
|
194
194
|
"$defs": {
|
|
195
195
|
"ExperimentBucketConfig": {
|
|
196
196
|
"properties": {
|
|
197
|
-
"
|
|
198
|
-
"
|
|
197
|
+
"count": {
|
|
198
|
+
"description": "Number of buckets in the range.",
|
|
199
|
+
"type": "integer"
|
|
199
200
|
},
|
|
200
201
|
"namespace": {
|
|
201
202
|
"description": "Additional inputs to the hashing function.",
|
|
202
203
|
"type": "string"
|
|
203
204
|
},
|
|
205
|
+
"randomizationUnit": {
|
|
206
|
+
"$ref": "#/$defs/RandomizationUnit"
|
|
207
|
+
},
|
|
204
208
|
"start": {
|
|
205
209
|
"description": "Index of the starting bucket of the range.",
|
|
206
210
|
"type": "integer"
|
|
207
211
|
},
|
|
208
|
-
"count": {
|
|
209
|
-
"description": "Number of buckets in the range.",
|
|
210
|
-
"type": "integer"
|
|
211
|
-
},
|
|
212
212
|
"total": {
|
|
213
213
|
"description": "The total number of buckets. You can assume this will always be 10000.",
|
|
214
214
|
"type": "integer"
|
|
@@ -230,6 +230,7 @@
|
|
|
230
230
|
"type": "string"
|
|
231
231
|
},
|
|
232
232
|
"value": {
|
|
233
|
+
"additionalProperties": true,
|
|
233
234
|
"description": "The values that define the feature configuration. This should be validated against a schema.",
|
|
234
235
|
"type": "object"
|
|
235
236
|
}
|
|
@@ -252,13 +253,13 @@
|
|
|
252
253
|
},
|
|
253
254
|
"ExperimentOutcome": {
|
|
254
255
|
"properties": {
|
|
255
|
-
"slug": {
|
|
256
|
-
"description": "Identifier for the outcome.",
|
|
257
|
-
"type": "string"
|
|
258
|
-
},
|
|
259
256
|
"priority": {
|
|
260
257
|
"description": "e.g., \"primary\" or \"secondary\".",
|
|
261
258
|
"type": "string"
|
|
259
|
+
},
|
|
260
|
+
"slug": {
|
|
261
|
+
"description": "Identifier for the outcome.",
|
|
262
|
+
"type": "string"
|
|
262
263
|
}
|
|
263
264
|
},
|
|
264
265
|
"required": [
|
|
@@ -280,20 +281,20 @@
|
|
|
280
281
|
"SdkExperimentBranch": {
|
|
281
282
|
"description": "The branch definition for SDK-based applications. Supported on Firefox for Android 96+, Firefox for iOS 39+, and all versions of Cirrus.",
|
|
282
283
|
"properties": {
|
|
283
|
-
"slug": {
|
|
284
|
-
"description": "Identifier for the branch.",
|
|
285
|
-
"type": "string"
|
|
286
|
-
},
|
|
287
|
-
"ratio": {
|
|
288
|
-
"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.",
|
|
289
|
-
"type": "integer"
|
|
290
|
-
},
|
|
291
284
|
"features": {
|
|
292
285
|
"description": "An array of feature configurations.",
|
|
293
286
|
"items": {
|
|
294
287
|
"$ref": "#/$defs/ExperimentFeatureConfig"
|
|
295
288
|
},
|
|
296
289
|
"type": "array"
|
|
290
|
+
},
|
|
291
|
+
"ratio": {
|
|
292
|
+
"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.",
|
|
293
|
+
"type": "integer"
|
|
294
|
+
},
|
|
295
|
+
"slug": {
|
|
296
|
+
"description": "Identifier for the branch.",
|
|
297
|
+
"type": "string"
|
|
297
298
|
}
|
|
298
299
|
},
|
|
299
300
|
"required": [
|