@mozilla/nimbus-schemas 3002.0.0 → 3003.1.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
CHANGED
|
@@ -68,8 +68,14 @@ export interface DesktopAllVersionsNimbusExperiment {
|
|
|
68
68
|
* Examples are "org.mozilla.firefox_beta" and "firefox-desktop".
|
|
69
69
|
*/
|
|
70
70
|
appId: string;
|
|
71
|
+
/**
|
|
72
|
+
* A mirror of the appId field
|
|
73
|
+
*/
|
|
74
|
+
application: string;
|
|
71
75
|
/**
|
|
72
76
|
* A specific channel of an application such as "nightly", "beta", or "release".
|
|
77
|
+
*
|
|
78
|
+
* This field is only respected by nimbus-sdk-based applications.
|
|
73
79
|
*/
|
|
74
80
|
channel: string;
|
|
75
81
|
/**
|
|
@@ -153,23 +159,19 @@ export interface DesktopAllVersionsNimbusExperiment {
|
|
|
153
159
|
*/
|
|
154
160
|
publishedDate?: string | null;
|
|
155
161
|
/**
|
|
156
|
-
*
|
|
162
|
+
* Opt out of feature schema validation.
|
|
157
163
|
*/
|
|
158
|
-
|
|
164
|
+
featureValidationOptOut?: boolean;
|
|
159
165
|
/**
|
|
160
|
-
* When this property is set to true, treat this experiment as
|
|
166
|
+
* When this property is set to true, treat this experiment as a Firefox Labs experiment
|
|
161
167
|
*/
|
|
162
168
|
isFirefoxLabsOptIn?: boolean;
|
|
163
169
|
/**
|
|
164
|
-
* The
|
|
165
|
-
*/
|
|
166
|
-
firefoxLabsGroup?: string | null;
|
|
167
|
-
/**
|
|
168
|
-
* The title shown in Firefox Labs (Fluent ID)
|
|
170
|
+
* The title shown in Firefox Labs (Fluent ID or Resource ID)
|
|
169
171
|
*/
|
|
170
172
|
firefoxLabsTitle?: string | null;
|
|
171
173
|
/**
|
|
172
|
-
* The description shown in Firefox Labs (Fluent ID)
|
|
174
|
+
* The description shown in Firefox Labs (Fluent ID or Resource ID)
|
|
173
175
|
*/
|
|
174
176
|
firefoxLabsDescription?: string | null;
|
|
175
177
|
/**
|
|
@@ -178,16 +180,20 @@ export interface DesktopAllVersionsNimbusExperiment {
|
|
|
178
180
|
firefoxLabsDescriptionLinks?: {
|
|
179
181
|
[k: string]: string;
|
|
180
182
|
} | null;
|
|
181
|
-
/**
|
|
182
|
-
* Opt out of feature schema validation.
|
|
183
|
-
*/
|
|
184
|
-
featureValidationOptOut?: boolean;
|
|
185
183
|
/**
|
|
186
184
|
* Does the experiment require a restart to take effect?
|
|
187
185
|
*
|
|
188
186
|
* Only used by Firefox Labs Opt-Ins.
|
|
189
187
|
*/
|
|
190
188
|
requiresRestart?: boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Branch configuration for the experiment.
|
|
191
|
+
*/
|
|
192
|
+
branches: DesktopAllVersionsExperimentBranch[];
|
|
193
|
+
/**
|
|
194
|
+
* The group this should appear under in Firefox Labs
|
|
195
|
+
*/
|
|
196
|
+
firefoxLabsGroup?: string | null;
|
|
191
197
|
}
|
|
192
198
|
export interface ExperimentBucketConfig {
|
|
193
199
|
randomizationUnit: RandomizationUnit;
|
|
@@ -314,8 +320,14 @@ export interface DesktopNimbusExperiment {
|
|
|
314
320
|
* Examples are "org.mozilla.firefox_beta" and "firefox-desktop".
|
|
315
321
|
*/
|
|
316
322
|
appId: string;
|
|
323
|
+
/**
|
|
324
|
+
* A mirror of the appId field
|
|
325
|
+
*/
|
|
326
|
+
application: string;
|
|
317
327
|
/**
|
|
318
328
|
* A specific channel of an application such as "nightly", "beta", or "release".
|
|
329
|
+
*
|
|
330
|
+
* This field is only respected by nimbus-sdk-based applications.
|
|
319
331
|
*/
|
|
320
332
|
channel: string;
|
|
321
333
|
/**
|
|
@@ -399,23 +411,19 @@ export interface DesktopNimbusExperiment {
|
|
|
399
411
|
*/
|
|
400
412
|
publishedDate?: string | null;
|
|
401
413
|
/**
|
|
402
|
-
*
|
|
414
|
+
* Opt out of feature schema validation.
|
|
403
415
|
*/
|
|
404
|
-
|
|
416
|
+
featureValidationOptOut?: boolean;
|
|
405
417
|
/**
|
|
406
|
-
* When this property is set to true, treat this experiment as
|
|
418
|
+
* When this property is set to true, treat this experiment as a Firefox Labs experiment
|
|
407
419
|
*/
|
|
408
420
|
isFirefoxLabsOptIn?: boolean;
|
|
409
421
|
/**
|
|
410
|
-
* The
|
|
411
|
-
*/
|
|
412
|
-
firefoxLabsGroup?: string | null;
|
|
413
|
-
/**
|
|
414
|
-
* The title shown in Firefox Labs (Fluent ID)
|
|
422
|
+
* The title shown in Firefox Labs (Fluent ID or Resource ID)
|
|
415
423
|
*/
|
|
416
424
|
firefoxLabsTitle?: string | null;
|
|
417
425
|
/**
|
|
418
|
-
* The description shown in Firefox Labs (Fluent ID)
|
|
426
|
+
* The description shown in Firefox Labs (Fluent ID or Resource ID)
|
|
419
427
|
*/
|
|
420
428
|
firefoxLabsDescription?: string | null;
|
|
421
429
|
/**
|
|
@@ -424,16 +432,20 @@ export interface DesktopNimbusExperiment {
|
|
|
424
432
|
firefoxLabsDescriptionLinks?: {
|
|
425
433
|
[k: string]: string;
|
|
426
434
|
} | null;
|
|
427
|
-
/**
|
|
428
|
-
* Opt out of feature schema validation.
|
|
429
|
-
*/
|
|
430
|
-
featureValidationOptOut?: boolean;
|
|
431
435
|
/**
|
|
432
436
|
* Does the experiment require a restart to take effect?
|
|
433
437
|
*
|
|
434
438
|
* Only used by Firefox Labs Opt-Ins.
|
|
435
439
|
*/
|
|
436
440
|
requiresRestart?: boolean;
|
|
441
|
+
/**
|
|
442
|
+
* Branch configuration for the experiment.
|
|
443
|
+
*/
|
|
444
|
+
branches: DesktopExperimentBranch[];
|
|
445
|
+
/**
|
|
446
|
+
* The group this should appear under in Firefox Labs
|
|
447
|
+
*/
|
|
448
|
+
firefoxLabsGroup?: string | null;
|
|
437
449
|
}
|
|
438
450
|
/**
|
|
439
451
|
* The branch definition supported on Firefox Desktop 95+.
|
|
@@ -490,8 +502,14 @@ export interface SdkNimbusExperiment {
|
|
|
490
502
|
* Examples are "org.mozilla.firefox_beta" and "firefox-desktop".
|
|
491
503
|
*/
|
|
492
504
|
appId: string;
|
|
505
|
+
/**
|
|
506
|
+
* A mirror of the appId field
|
|
507
|
+
*/
|
|
508
|
+
application: string;
|
|
493
509
|
/**
|
|
494
510
|
* A specific channel of an application such as "nightly", "beta", or "release".
|
|
511
|
+
*
|
|
512
|
+
* This field is only respected by nimbus-sdk-based applications.
|
|
495
513
|
*/
|
|
496
514
|
channel: string;
|
|
497
515
|
/**
|
|
@@ -577,6 +595,36 @@ export interface SdkNimbusExperiment {
|
|
|
577
595
|
* If null, it has not yet been published.
|
|
578
596
|
*/
|
|
579
597
|
publishedDate?: string | null;
|
|
598
|
+
/**
|
|
599
|
+
* If true, clients should not perform feature validation.
|
|
600
|
+
*
|
|
601
|
+
* This field is only supported by Firefox Desktop.
|
|
602
|
+
*/
|
|
603
|
+
featureValidationOptOut?: boolean | null;
|
|
604
|
+
/**
|
|
605
|
+
* When this property is set to true, treat this experiment as a Firefox Labs experiment
|
|
606
|
+
*/
|
|
607
|
+
isFirefoxLabsOptIn?: boolean;
|
|
608
|
+
/**
|
|
609
|
+
* The title shown in Firefox Labs (Fluent ID or Resource ID)
|
|
610
|
+
*/
|
|
611
|
+
firefoxLabsTitle?: string | null;
|
|
612
|
+
/**
|
|
613
|
+
* The description shown in Firefox Labs (Fluent ID or Resource ID)
|
|
614
|
+
*/
|
|
615
|
+
firefoxLabsDescription?: string | null;
|
|
616
|
+
/**
|
|
617
|
+
* Links that will be used with the firefoxLabsDescription Fluent ID. May be null for Firefox Labs Opt-In recipes that do not use links.
|
|
618
|
+
*/
|
|
619
|
+
firefoxLabsDescriptionLinks?: {
|
|
620
|
+
[k: string]: string;
|
|
621
|
+
} | null;
|
|
622
|
+
/**
|
|
623
|
+
* Does the experiment require a restart to take effect?
|
|
624
|
+
*
|
|
625
|
+
* Only used by Firefox Labs Opt-Ins.
|
|
626
|
+
*/
|
|
627
|
+
requiresRestart?: boolean;
|
|
580
628
|
/**
|
|
581
629
|
* Branch configuration for the SDK experiment.
|
|
582
630
|
*/
|
|
@@ -875,3 +923,206 @@ export interface Statistic {
|
|
|
875
923
|
analysis_basis?: AnalysisBasis | null;
|
|
876
924
|
window_index?: string | null;
|
|
877
925
|
}
|
|
926
|
+
/**
|
|
927
|
+
* A Nimbus experiment for V7.
|
|
928
|
+
*/
|
|
929
|
+
export interface NimbusExperimentV7 {
|
|
930
|
+
/**
|
|
931
|
+
* Version of the NimbusExperiment schema this experiment refers to
|
|
932
|
+
*/
|
|
933
|
+
schemaVersion: string;
|
|
934
|
+
/**
|
|
935
|
+
* Unique identifier for the experiment
|
|
936
|
+
*/
|
|
937
|
+
slug: string;
|
|
938
|
+
/**
|
|
939
|
+
* Unique identifier for the experiiment.
|
|
940
|
+
*
|
|
941
|
+
* This is a duplicate of slug, but is required field for all Remote Settings records.
|
|
942
|
+
*/
|
|
943
|
+
id: string;
|
|
944
|
+
/**
|
|
945
|
+
* A slug identifying the targeted product of this experiment.
|
|
946
|
+
*
|
|
947
|
+
* 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".
|
|
948
|
+
*/
|
|
949
|
+
appName: string;
|
|
950
|
+
/**
|
|
951
|
+
* The platform identifier for the targeted app.
|
|
952
|
+
*
|
|
953
|
+
* 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).
|
|
954
|
+
*
|
|
955
|
+
* Examples are "org.mozilla.firefox_beta" and "firefox-desktop".
|
|
956
|
+
*/
|
|
957
|
+
appId: string;
|
|
958
|
+
/**
|
|
959
|
+
* A mirror of the appId field
|
|
960
|
+
*/
|
|
961
|
+
application: string;
|
|
962
|
+
/**
|
|
963
|
+
* A specific channel of an application such as "nightly", "beta", or "release".
|
|
964
|
+
*
|
|
965
|
+
* This field is only respected by nimbus-sdk-based applications.
|
|
966
|
+
*/
|
|
967
|
+
channel: string;
|
|
968
|
+
/**
|
|
969
|
+
* Public name of the experiment that will be displayed on "about:studies".
|
|
970
|
+
*/
|
|
971
|
+
userFacingName: string;
|
|
972
|
+
/**
|
|
973
|
+
* Short public description of the experiment that will be displayed on "about:studies".
|
|
974
|
+
*/
|
|
975
|
+
userFacingDescription: string;
|
|
976
|
+
/**
|
|
977
|
+
* When this property is set to true, the SDK should not enroll new users into the experiment that have not already been enrolled.
|
|
978
|
+
*/
|
|
979
|
+
isEnrollmentPaused: boolean;
|
|
980
|
+
/**
|
|
981
|
+
* When this property is set to true, treat this experiment as a rollout.
|
|
982
|
+
*
|
|
983
|
+
* Rollouts are currently handled as single-branch experiments separated from the bucketing namespace for normal experiments.
|
|
984
|
+
*
|
|
985
|
+
* See-also: https://mozilla-hub.atlassian.net/browse/SDK-405
|
|
986
|
+
*/
|
|
987
|
+
isRollout?: boolean;
|
|
988
|
+
bucketConfig: ExperimentBucketConfig;
|
|
989
|
+
/**
|
|
990
|
+
* A list of outcomes relevant to the experiment analysis.
|
|
991
|
+
*/
|
|
992
|
+
outcomes?: ExperimentOutcome[];
|
|
993
|
+
/**
|
|
994
|
+
* A list of featureIds the experiment contains configurations for.
|
|
995
|
+
*/
|
|
996
|
+
featureIds: string[];
|
|
997
|
+
/**
|
|
998
|
+
* A JEXL targeting expression used to filter out experiments.
|
|
999
|
+
*/
|
|
1000
|
+
targeting?: string | null;
|
|
1001
|
+
/**
|
|
1002
|
+
* Actual publish date of the experiment.
|
|
1003
|
+
*
|
|
1004
|
+
* Note that this value is expected to be null in Remote Settings.
|
|
1005
|
+
*/
|
|
1006
|
+
startDate: string | null;
|
|
1007
|
+
/**
|
|
1008
|
+
* Actual enrollment end date of the experiment.
|
|
1009
|
+
*
|
|
1010
|
+
* Note that this value is expected to be null in Remote Settings.
|
|
1011
|
+
*/
|
|
1012
|
+
enrollmentEndDate?: string | null;
|
|
1013
|
+
/**
|
|
1014
|
+
* Actual end date of this experiment.
|
|
1015
|
+
*
|
|
1016
|
+
* Note that this field is expected to be null in Remote Settings.
|
|
1017
|
+
*/
|
|
1018
|
+
endDate: string | null;
|
|
1019
|
+
/**
|
|
1020
|
+
* Duration of the experiment from the start date in days.
|
|
1021
|
+
*
|
|
1022
|
+
* Note that this property is only used during the analysis phase (i.e., not by the SDK).
|
|
1023
|
+
*/
|
|
1024
|
+
proposedDuration?: number;
|
|
1025
|
+
/**
|
|
1026
|
+
* This represents the number of days that we expect to enroll new users.
|
|
1027
|
+
*
|
|
1028
|
+
* Note that this property is only used during the analysis phase (i.e., not by the SDK).
|
|
1029
|
+
*/
|
|
1030
|
+
proposedEnrollment: number;
|
|
1031
|
+
/**
|
|
1032
|
+
* The slug of the reference branch (i.e., the branch we consider "control").
|
|
1033
|
+
*/
|
|
1034
|
+
referenceBranch: string | null;
|
|
1035
|
+
/**
|
|
1036
|
+
* The list of locale codes (e.g., "en-US" or "fr") that this experiment is targeting.
|
|
1037
|
+
*
|
|
1038
|
+
* If null, all locales are targeted.
|
|
1039
|
+
*/
|
|
1040
|
+
locales?: string[] | null;
|
|
1041
|
+
/**
|
|
1042
|
+
* Per-locale localization substitutions.
|
|
1043
|
+
*/
|
|
1044
|
+
localizations?: ExperimentLocalizations | null;
|
|
1045
|
+
/**
|
|
1046
|
+
* The date that this experiment was first published to Remote Settings.
|
|
1047
|
+
*
|
|
1048
|
+
* If null, it has not yet been published.
|
|
1049
|
+
*/
|
|
1050
|
+
publishedDate?: string | null;
|
|
1051
|
+
/**
|
|
1052
|
+
* If true, clients should not perform feature validation.
|
|
1053
|
+
*
|
|
1054
|
+
* This field is only supported by Firefox Desktop.
|
|
1055
|
+
*/
|
|
1056
|
+
featureValidationOptOut?: boolean | null;
|
|
1057
|
+
/**
|
|
1058
|
+
* When this property is set to true, treat this experiment as a Firefox Labs experiment
|
|
1059
|
+
*/
|
|
1060
|
+
isFirefoxLabsOptIn?: boolean;
|
|
1061
|
+
/**
|
|
1062
|
+
* The title shown in Firefox Labs (Fluent ID or Resource ID)
|
|
1063
|
+
*/
|
|
1064
|
+
firefoxLabsTitle?: string | null;
|
|
1065
|
+
/**
|
|
1066
|
+
* The description shown in Firefox Labs (Fluent ID or Resource ID)
|
|
1067
|
+
*/
|
|
1068
|
+
firefoxLabsDescription?: string | null;
|
|
1069
|
+
/**
|
|
1070
|
+
* Links that will be used with the firefoxLabsDescription Fluent ID. May be null for Firefox Labs Opt-In recipes that do not use links.
|
|
1071
|
+
*/
|
|
1072
|
+
firefoxLabsDescriptionLinks?: {
|
|
1073
|
+
[k: string]: string;
|
|
1074
|
+
} | null;
|
|
1075
|
+
/**
|
|
1076
|
+
* Does the experiment require a restart to take effect?
|
|
1077
|
+
*
|
|
1078
|
+
* Only used by Firefox Labs Opt-Ins.
|
|
1079
|
+
*/
|
|
1080
|
+
requiresRestart?: boolean;
|
|
1081
|
+
/**
|
|
1082
|
+
* The channels available for the experiment.
|
|
1083
|
+
* This field should be preferred over the channel field.
|
|
1084
|
+
*/
|
|
1085
|
+
channels?: string[];
|
|
1086
|
+
/**
|
|
1087
|
+
* Branch configuration for the experiment.
|
|
1088
|
+
*/
|
|
1089
|
+
branches: ExperimentBranchV7[];
|
|
1090
|
+
/**
|
|
1091
|
+
* All documentation links associated with this experiment.
|
|
1092
|
+
*/
|
|
1093
|
+
documentationLinks: DocumentationLink[];
|
|
1094
|
+
}
|
|
1095
|
+
export interface ExperimentBranchV7 {
|
|
1096
|
+
/**
|
|
1097
|
+
* Identifier for the branch.
|
|
1098
|
+
*/
|
|
1099
|
+
slug: string;
|
|
1100
|
+
/**
|
|
1101
|
+
* Relative ratio of population for the branch.
|
|
1102
|
+
*
|
|
1103
|
+
* e.g., if branch A=1 and branch B=3, then branch A would get 25% of the population.
|
|
1104
|
+
*/
|
|
1105
|
+
ratio: number;
|
|
1106
|
+
/**
|
|
1107
|
+
* An array of feature configurations.
|
|
1108
|
+
*/
|
|
1109
|
+
features: ExperimentFeatureConfig[];
|
|
1110
|
+
/**
|
|
1111
|
+
* A description of the branch.
|
|
1112
|
+
*/
|
|
1113
|
+
description: string;
|
|
1114
|
+
/**
|
|
1115
|
+
* The URLs of any screenshots associated with the branch.
|
|
1116
|
+
*/
|
|
1117
|
+
screenshots: string[];
|
|
1118
|
+
}
|
|
1119
|
+
export interface DocumentationLink {
|
|
1120
|
+
/**
|
|
1121
|
+
* The name associated with the link.
|
|
1122
|
+
*/
|
|
1123
|
+
title: string;
|
|
1124
|
+
/**
|
|
1125
|
+
* The URL associated with the link.
|
|
1126
|
+
*/
|
|
1127
|
+
link: string;
|
|
1128
|
+
}
|
package/package.json
CHANGED
|
@@ -12,6 +12,10 @@
|
|
|
12
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\".",
|
|
13
13
|
"type": "string"
|
|
14
14
|
},
|
|
15
|
+
"application": {
|
|
16
|
+
"description": "A mirror of the appId field",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
15
19
|
"branches": {
|
|
16
20
|
"description": "Branch configuration for the experiment.",
|
|
17
21
|
"items": {
|
|
@@ -24,7 +28,7 @@
|
|
|
24
28
|
"description": "Bucketing configuration."
|
|
25
29
|
},
|
|
26
30
|
"channel": {
|
|
27
|
-
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\".",
|
|
31
|
+
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\". This field is only respected by nimbus-sdk-based applications.",
|
|
28
32
|
"type": "string"
|
|
29
33
|
},
|
|
30
34
|
"endDate": {
|
|
@@ -71,7 +75,7 @@
|
|
|
71
75
|
"type": "null"
|
|
72
76
|
}
|
|
73
77
|
],
|
|
74
|
-
"description": "The description shown in Firefox Labs (Fluent ID)"
|
|
78
|
+
"description": "The description shown in Firefox Labs (Fluent ID or Resource ID)"
|
|
75
79
|
},
|
|
76
80
|
"firefoxLabsDescriptionLinks": {
|
|
77
81
|
"anyOf": [
|
|
@@ -110,7 +114,7 @@
|
|
|
110
114
|
"type": "null"
|
|
111
115
|
}
|
|
112
116
|
],
|
|
113
|
-
"description": "The title shown in Firefox Labs (Fluent ID)"
|
|
117
|
+
"description": "The title shown in Firefox Labs (Fluent ID or Resource ID)"
|
|
114
118
|
},
|
|
115
119
|
"id": {
|
|
116
120
|
"description": "Unique identifier for the experiiment. This is a duplicate of slug, but is required field for all Remote Settings records.",
|
|
@@ -121,7 +125,7 @@
|
|
|
121
125
|
"type": "boolean"
|
|
122
126
|
},
|
|
123
127
|
"isFirefoxLabsOptIn": {
|
|
124
|
-
"description": "When this property is set to true, treat this experiment as
|
|
128
|
+
"description": "When this property is set to true, treat this experiment as a Firefox Labs experiment",
|
|
125
129
|
"type": "boolean"
|
|
126
130
|
},
|
|
127
131
|
"isRollout": {
|
|
@@ -240,6 +244,7 @@
|
|
|
240
244
|
"id",
|
|
241
245
|
"appName",
|
|
242
246
|
"appId",
|
|
247
|
+
"application",
|
|
243
248
|
"channel",
|
|
244
249
|
"userFacingName",
|
|
245
250
|
"userFacingDescription",
|
|
@@ -274,7 +279,6 @@
|
|
|
274
279
|
},
|
|
275
280
|
"required": [
|
|
276
281
|
"firefoxLabsDescription",
|
|
277
|
-
"firefoxLabsDescriptionLinks",
|
|
278
282
|
"firefoxLabsGroup",
|
|
279
283
|
"firefoxLabsTitle"
|
|
280
284
|
],
|
|
@@ -12,6 +12,10 @@
|
|
|
12
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\".",
|
|
13
13
|
"type": "string"
|
|
14
14
|
},
|
|
15
|
+
"application": {
|
|
16
|
+
"description": "A mirror of the appId field",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
15
19
|
"branches": {
|
|
16
20
|
"description": "Branch configuration for the experiment.",
|
|
17
21
|
"items": {
|
|
@@ -24,7 +28,7 @@
|
|
|
24
28
|
"description": "Bucketing configuration."
|
|
25
29
|
},
|
|
26
30
|
"channel": {
|
|
27
|
-
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\".",
|
|
31
|
+
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\". This field is only respected by nimbus-sdk-based applications.",
|
|
28
32
|
"type": "string"
|
|
29
33
|
},
|
|
30
34
|
"endDate": {
|
|
@@ -71,7 +75,7 @@
|
|
|
71
75
|
"type": "null"
|
|
72
76
|
}
|
|
73
77
|
],
|
|
74
|
-
"description": "The description shown in Firefox Labs (Fluent ID)"
|
|
78
|
+
"description": "The description shown in Firefox Labs (Fluent ID or Resource ID)"
|
|
75
79
|
},
|
|
76
80
|
"firefoxLabsDescriptionLinks": {
|
|
77
81
|
"anyOf": [
|
|
@@ -110,7 +114,7 @@
|
|
|
110
114
|
"type": "null"
|
|
111
115
|
}
|
|
112
116
|
],
|
|
113
|
-
"description": "The title shown in Firefox Labs (Fluent ID)"
|
|
117
|
+
"description": "The title shown in Firefox Labs (Fluent ID or Resource ID)"
|
|
114
118
|
},
|
|
115
119
|
"id": {
|
|
116
120
|
"description": "Unique identifier for the experiiment. This is a duplicate of slug, but is required field for all Remote Settings records.",
|
|
@@ -121,7 +125,7 @@
|
|
|
121
125
|
"type": "boolean"
|
|
122
126
|
},
|
|
123
127
|
"isFirefoxLabsOptIn": {
|
|
124
|
-
"description": "When this property is set to true, treat this experiment as
|
|
128
|
+
"description": "When this property is set to true, treat this experiment as a Firefox Labs experiment",
|
|
125
129
|
"type": "boolean"
|
|
126
130
|
},
|
|
127
131
|
"isRollout": {
|
|
@@ -240,6 +244,7 @@
|
|
|
240
244
|
"id",
|
|
241
245
|
"appName",
|
|
242
246
|
"appId",
|
|
247
|
+
"application",
|
|
243
248
|
"channel",
|
|
244
249
|
"userFacingName",
|
|
245
250
|
"userFacingDescription",
|
|
@@ -274,7 +279,6 @@
|
|
|
274
279
|
},
|
|
275
280
|
"required": [
|
|
276
281
|
"firefoxLabsDescription",
|
|
277
|
-
"firefoxLabsDescriptionLinks",
|
|
278
282
|
"firefoxLabsGroup",
|
|
279
283
|
"firefoxLabsTitle"
|
|
280
284
|
],
|
|
@@ -12,10 +12,14 @@
|
|
|
12
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\".",
|
|
13
13
|
"type": "string"
|
|
14
14
|
},
|
|
15
|
+
"application": {
|
|
16
|
+
"description": "A mirror of the appId field",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
15
19
|
"branches": {
|
|
16
20
|
"description": "Branch configuration for the experiment.",
|
|
17
21
|
"items": {
|
|
18
|
-
"$ref": "#/$defs/
|
|
22
|
+
"$ref": "#/$defs/ExperimentBranchV7"
|
|
19
23
|
},
|
|
20
24
|
"type": "array"
|
|
21
25
|
},
|
|
@@ -24,9 +28,16 @@
|
|
|
24
28
|
"description": "Bucketing configuration."
|
|
25
29
|
},
|
|
26
30
|
"channel": {
|
|
27
|
-
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\".",
|
|
31
|
+
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\". This field is only respected by nimbus-sdk-based applications.",
|
|
28
32
|
"type": "string"
|
|
29
33
|
},
|
|
34
|
+
"channels": {
|
|
35
|
+
"description": "The channels available for the experiment. This field should be preferred over the channel field.",
|
|
36
|
+
"items": {
|
|
37
|
+
"type": "string"
|
|
38
|
+
},
|
|
39
|
+
"type": "array"
|
|
40
|
+
},
|
|
30
41
|
"documentationLinks": {
|
|
31
42
|
"description": "All documentation links associated with this experiment.",
|
|
32
43
|
"items": {
|
|
@@ -65,6 +76,56 @@
|
|
|
65
76
|
},
|
|
66
77
|
"type": "array"
|
|
67
78
|
},
|
|
79
|
+
"featureValidationOptOut": {
|
|
80
|
+
"anyOf": [
|
|
81
|
+
{
|
|
82
|
+
"type": "boolean"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"type": "null"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"description": "If true, clients should not perform feature validation. This field is only supported by Firefox Desktop."
|
|
89
|
+
},
|
|
90
|
+
"firefoxLabsDescription": {
|
|
91
|
+
"anyOf": [
|
|
92
|
+
{
|
|
93
|
+
"type": "string"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"type": "null"
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"description": "The description shown in Firefox Labs (Fluent ID or Resource ID)"
|
|
100
|
+
},
|
|
101
|
+
"firefoxLabsDescriptionLinks": {
|
|
102
|
+
"anyOf": [
|
|
103
|
+
{
|
|
104
|
+
"additionalProperties": {
|
|
105
|
+
"format": "uri",
|
|
106
|
+
"maxLength": 2083,
|
|
107
|
+
"minLength": 1,
|
|
108
|
+
"type": "string"
|
|
109
|
+
},
|
|
110
|
+
"type": "object"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"type": "null"
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
"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."
|
|
117
|
+
},
|
|
118
|
+
"firefoxLabsTitle": {
|
|
119
|
+
"anyOf": [
|
|
120
|
+
{
|
|
121
|
+
"type": "string"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"type": "null"
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
"description": "The title shown in Firefox Labs (Fluent ID or Resource ID)"
|
|
128
|
+
},
|
|
68
129
|
"id": {
|
|
69
130
|
"description": "Unique identifier for the experiiment. This is a duplicate of slug, but is required field for all Remote Settings records.",
|
|
70
131
|
"type": "string"
|
|
@@ -73,6 +134,10 @@
|
|
|
73
134
|
"description": "When this property is set to true, the SDK should not enroll new users into the experiment that have not already been enrolled.",
|
|
74
135
|
"type": "boolean"
|
|
75
136
|
},
|
|
137
|
+
"isFirefoxLabsOptIn": {
|
|
138
|
+
"description": "When this property is set to true, treat this experiment as a Firefox Labs experiment",
|
|
139
|
+
"type": "boolean"
|
|
140
|
+
},
|
|
76
141
|
"isRollout": {
|
|
77
142
|
"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",
|
|
78
143
|
"type": "boolean"
|
|
@@ -140,6 +205,10 @@
|
|
|
140
205
|
],
|
|
141
206
|
"description": "The slug of the reference branch (i.e., the branch we consider \"control\")."
|
|
142
207
|
},
|
|
208
|
+
"requiresRestart": {
|
|
209
|
+
"description": "Does the experiment require a restart to take effect? Only used by Firefox Labs Opt-Ins.",
|
|
210
|
+
"type": "boolean"
|
|
211
|
+
},
|
|
143
212
|
"schemaVersion": {
|
|
144
213
|
"description": "Version of the NimbusExperiment schema this experiment refers to",
|
|
145
214
|
"type": "string"
|
|
@@ -186,6 +255,7 @@
|
|
|
186
255
|
"id",
|
|
187
256
|
"appName",
|
|
188
257
|
"appId",
|
|
258
|
+
"application",
|
|
189
259
|
"channel",
|
|
190
260
|
"userFacingName",
|
|
191
261
|
"userFacingDescription",
|
|
@@ -199,9 +269,47 @@
|
|
|
199
269
|
"branches",
|
|
200
270
|
"documentationLinks"
|
|
201
271
|
],
|
|
272
|
+
"dependentSchemas": {
|
|
273
|
+
"isFirefoxLabsOptIn": {
|
|
274
|
+
"if": {
|
|
275
|
+
"properties": {
|
|
276
|
+
"isFirefoxLabsOptIn": {
|
|
277
|
+
"const": true
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"then": {
|
|
282
|
+
"required": [
|
|
283
|
+
"firefoxLabsDescription",
|
|
284
|
+
"firefoxLabsTitle"
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
},
|
|
202
289
|
"$defs": {
|
|
203
|
-
"
|
|
290
|
+
"DocumentationLink": {
|
|
204
291
|
"properties": {
|
|
292
|
+
"link": {
|
|
293
|
+
"description": "The URL associated with the link.",
|
|
294
|
+
"type": "string"
|
|
295
|
+
},
|
|
296
|
+
"title": {
|
|
297
|
+
"description": "The name associated with the link.",
|
|
298
|
+
"type": "string"
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"required": [
|
|
302
|
+
"title",
|
|
303
|
+
"link"
|
|
304
|
+
],
|
|
305
|
+
"type": "object"
|
|
306
|
+
},
|
|
307
|
+
"ExperimentBranchV7": {
|
|
308
|
+
"properties": {
|
|
309
|
+
"description": {
|
|
310
|
+
"description": "A description of the branch.",
|
|
311
|
+
"type": "string"
|
|
312
|
+
},
|
|
205
313
|
"features": {
|
|
206
314
|
"description": "An array of feature configurations.",
|
|
207
315
|
"items": {
|
|
@@ -213,6 +321,13 @@
|
|
|
213
321
|
"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.",
|
|
214
322
|
"type": "integer"
|
|
215
323
|
},
|
|
324
|
+
"screenshots": {
|
|
325
|
+
"description": "The URLs of any screenshots associated with the branch.",
|
|
326
|
+
"items": {
|
|
327
|
+
"type": "string"
|
|
328
|
+
},
|
|
329
|
+
"type": "array"
|
|
330
|
+
},
|
|
216
331
|
"slug": {
|
|
217
332
|
"description": "Identifier for the branch.",
|
|
218
333
|
"type": "string"
|
|
@@ -221,24 +336,9 @@
|
|
|
221
336
|
"required": [
|
|
222
337
|
"slug",
|
|
223
338
|
"ratio",
|
|
224
|
-
"features"
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
},
|
|
228
|
-
"DocumentationLink": {
|
|
229
|
-
"properties": {
|
|
230
|
-
"link": {
|
|
231
|
-
"description": "The URL associated with the link.",
|
|
232
|
-
"type": "string"
|
|
233
|
-
},
|
|
234
|
-
"title": {
|
|
235
|
-
"description": "The name associated with the link.",
|
|
236
|
-
"type": "string"
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
"required": [
|
|
240
|
-
"title",
|
|
241
|
-
"link"
|
|
339
|
+
"features",
|
|
340
|
+
"description",
|
|
341
|
+
"screenshots"
|
|
242
342
|
],
|
|
243
343
|
"type": "object"
|
|
244
344
|
},
|
|
@@ -12,6 +12,10 @@
|
|
|
12
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\".",
|
|
13
13
|
"type": "string"
|
|
14
14
|
},
|
|
15
|
+
"application": {
|
|
16
|
+
"description": "A mirror of the appId field",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
15
19
|
"branches": {
|
|
16
20
|
"description": "Branch configuration for the SDK experiment.",
|
|
17
21
|
"items": {
|
|
@@ -24,7 +28,7 @@
|
|
|
24
28
|
"description": "Bucketing configuration."
|
|
25
29
|
},
|
|
26
30
|
"channel": {
|
|
27
|
-
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\".",
|
|
31
|
+
"description": "A specific channel of an application such as \"nightly\", \"beta\", or \"release\". This field is only respected by nimbus-sdk-based applications.",
|
|
28
32
|
"type": "string"
|
|
29
33
|
},
|
|
30
34
|
"endDate": {
|
|
@@ -58,6 +62,56 @@
|
|
|
58
62
|
},
|
|
59
63
|
"type": "array"
|
|
60
64
|
},
|
|
65
|
+
"featureValidationOptOut": {
|
|
66
|
+
"anyOf": [
|
|
67
|
+
{
|
|
68
|
+
"type": "boolean"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"type": "null"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"description": "If true, clients should not perform feature validation. This field is only supported by Firefox Desktop."
|
|
75
|
+
},
|
|
76
|
+
"firefoxLabsDescription": {
|
|
77
|
+
"anyOf": [
|
|
78
|
+
{
|
|
79
|
+
"type": "string"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"type": "null"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"description": "The description shown in Firefox Labs (Fluent ID or Resource ID)"
|
|
86
|
+
},
|
|
87
|
+
"firefoxLabsDescriptionLinks": {
|
|
88
|
+
"anyOf": [
|
|
89
|
+
{
|
|
90
|
+
"additionalProperties": {
|
|
91
|
+
"format": "uri",
|
|
92
|
+
"maxLength": 2083,
|
|
93
|
+
"minLength": 1,
|
|
94
|
+
"type": "string"
|
|
95
|
+
},
|
|
96
|
+
"type": "object"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"type": "null"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"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."
|
|
103
|
+
},
|
|
104
|
+
"firefoxLabsTitle": {
|
|
105
|
+
"anyOf": [
|
|
106
|
+
{
|
|
107
|
+
"type": "string"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"type": "null"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"description": "The title shown in Firefox Labs (Fluent ID or Resource ID)"
|
|
114
|
+
},
|
|
61
115
|
"id": {
|
|
62
116
|
"description": "Unique identifier for the experiiment. This is a duplicate of slug, but is required field for all Remote Settings records.",
|
|
63
117
|
"type": "string"
|
|
@@ -66,6 +120,10 @@
|
|
|
66
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.",
|
|
67
121
|
"type": "boolean"
|
|
68
122
|
},
|
|
123
|
+
"isFirefoxLabsOptIn": {
|
|
124
|
+
"description": "When this property is set to true, treat this experiment as a Firefox Labs experiment",
|
|
125
|
+
"type": "boolean"
|
|
126
|
+
},
|
|
69
127
|
"isRollout": {
|
|
70
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",
|
|
71
129
|
"type": "boolean"
|
|
@@ -133,6 +191,10 @@
|
|
|
133
191
|
],
|
|
134
192
|
"description": "The slug of the reference branch (i.e., the branch we consider \"control\")."
|
|
135
193
|
},
|
|
194
|
+
"requiresRestart": {
|
|
195
|
+
"description": "Does the experiment require a restart to take effect? Only used by Firefox Labs Opt-Ins.",
|
|
196
|
+
"type": "boolean"
|
|
197
|
+
},
|
|
136
198
|
"schemaVersion": {
|
|
137
199
|
"description": "Version of the NimbusExperiment schema this experiment refers to",
|
|
138
200
|
"type": "string"
|
|
@@ -179,6 +241,7 @@
|
|
|
179
241
|
"id",
|
|
180
242
|
"appName",
|
|
181
243
|
"appId",
|
|
244
|
+
"application",
|
|
182
245
|
"channel",
|
|
183
246
|
"userFacingName",
|
|
184
247
|
"userFacingDescription",
|
|
@@ -191,6 +254,30 @@
|
|
|
191
254
|
"referenceBranch",
|
|
192
255
|
"branches"
|
|
193
256
|
],
|
|
257
|
+
"dependentSchemas": {
|
|
258
|
+
"isFirefoxLabsOptIn": {
|
|
259
|
+
"if": {
|
|
260
|
+
"properties": {
|
|
261
|
+
"isFirefoxLabsOptIn": {
|
|
262
|
+
"const": true
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
"then": {
|
|
267
|
+
"properties": {
|
|
268
|
+
"isRollout": {
|
|
269
|
+
"const": true
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"required": [
|
|
273
|
+
"firefoxLabsDescription",
|
|
274
|
+
"firefoxLabsTitle",
|
|
275
|
+
"isRollout"
|
|
276
|
+
],
|
|
277
|
+
"type": "object"
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
},
|
|
194
281
|
"$defs": {
|
|
195
282
|
"ExperimentBucketConfig": {
|
|
196
283
|
"properties": {
|