forked from fjprz/nudge-jamf-json-schema
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnudge-jamf-schema.json
249 lines (249 loc) · 13.7 KB
/
nudge-jamf-schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
{
"title": "Nudge (com.github.macadmins.Nudge)",
"description": "Preference settings for Nudge",
"__version": "1.0",
"properties": {
"osVersionRequirements": {
"title": "OS Version Requirements",
"description": "Sets the OS Version requirements",
"type": "array",
"items": {
"type": "object",
"title": "OS Version requirements settings",
"description": "A list of arrays, enabling localization of the More Info button URL path. Please see the aboutUpdateURLs wiki article for more information.",
"properties": {
"aboutUpdateURLs": {
"title": "About URLs for Updates",
"type": "array",
"items": {
"title": "Language",
"type": "object",
"properties": {
"_language": {
"title": "Language Code for Language",
"type": "string"
},
"aboutUpdateURL": {
"Title": "About Update URL for Language",
"type": "string"
}
}
}
},
"majorUpgradeAppPath": {
"title": "Major Upgrade App Path",
"description": "The app path for a major upgrade.",
"type": "string",
"default": ""
},
"requiredInstallationDate": {
"title": "Required Installation Date",
"description": "The required installation date for Nudge to enforce the required operating system version.\nNote: You must follow standard a date string as YYYY-MM-DDTHH:MM:SSZ - Example: 2021-01-31T00:00:00Z",
"type": "string",
"default": ""
},
"requiredMinimumOSVersion": {
"title": "Required Minimum OS Version",
"description": "The required minimum operating system version.\n\nNote: When passing versions such as 11.2.0 it will be normalized to 11.2. It is recommended to leave the trailing zero from the version number.",
"type": "string",
"default": ""
},
"targetedOSVersions": {
"title": "Targeted OS Versions",
"description": "The versions of macOS that require a security update. You can specify single version or multiple versions, but they must be within an array.",
"type": "array",
"items": {
"type": "string"
},
"default": []
}
}
}
},
"optionalFeatures": {
"type": "array",
"items": {
"type": "object",
"title": "optional Features",
"properties": {
"attemptToFetchMajorUpgrade": {
"title": "Attempt To Fetch Major Upgrade",
"description": "When a major upgrade is required, Nudge will attempt to download it through the softwareupdate binary.",
"type": "boolean",
"default": "false"
},
"asyncronousSoftwareUpdate": {
"title": "Asyncronous Software Update",
"description": "When enabled Nudge will wait for Software Update to finish downloading (if any) updates before showing the UI",
"type": "boolean",
"default": "true"
},
"enforceMinorUpdates": {
"title": "Enforce Minor Updates",
"description": "When enabled, Nudge will enforce minor updates. This should likely never be disabled.",
"type": "boolean",
"default": "true"
}
}
}
},
"userExperience": {
"type": "array",
"items": {
"type": "object",
"title": "Settings regarding User Experience",
"properties": {
"allowedDeferrals": {
"title": "Allowed Deferrals",
"description": "The amount of times a user can defer Nudge (change it from the currently active window) in the current user session before the aggressive user experience is enabled.",
"type": "integer",
"default": "1000000"
},
"allowedDeferralsUntilForcedSecondaryQuitButton": {
"title": "Allowed Deferrals Until Forced Secondary Quit Button",
"description": "The amount of times a user can defer Nudge (change it from the currently active window) in the current user session before the both quit buttons need to be actioned.\n\nNote: The deferral count is only tied to the active Nudge session. If a user closes out of Nudge and the LaunchAgent re-triggers, the deferral count will re-start.",
"type": "integer",
"default": "14"
},
"approachingRefreshCycle": {
"title": "Approaching Refresh Cycle",
"description": "The amount of time in seconds Nudge will use as a timer to refresh the user interface if it is not the currently active window.\n\nThis key is directly tied to its partner key approachingWindowTime to know when to trigger this timer.",
"type": "integer",
"default": "6000"
},
"approachingWindowTime": {
"title": "Approaching Window Time ",
"description": "The amount of time in hours Nudge will use to determine that the requiredInstallationDate is approaching.",
"type": "integer",
"default": "72"
},
"elapsedRefreshCycle": {
"title": "Elapsed Refresh Cycle",
"description": "The amount of time in seconds Nudge will use as a timer to refresh the user interface if it is not the currently active window.\n\nThis key is triggered once the requiredInstallationDate has expired.",
"type": "integer",
"default": "300"
},
"imminentRefeshCycle": {
"title": "Imminent Refesh Cycle",
"description": "The amount of time in seconds Nudge will use as a timer to refresh the user interface if it is not the currently active window.\n\nThis key is directly tied to its partner key imminentWindowTime to know when to trigger this timer.",
"type": "integer",
"default": "600"
},
"imminentWindowTime": {
"title": "Imminent Window Time",
"description": "The amount of time in hours Nudge will use to determine that the requiredInstallationDate is imminent",
"type": "integer",
"default": "24"
},
"initialRefreshCycle": {
"title": "Initial Refresh Cycle",
"description": "The amount of time in seconds Nudge will use as a timer to refresh the user interface if it is not the currently active window.",
"type": "integer",
"default": "18000"
},
"maxRandomDelayInSeconds": {
"title": "Max Random Delay In Seconds",
"description": "The maximum amount of delay Nudge will utilize before launching the UI. This is useful if you do not want your users to all receive the Nudge prompt at the exact time of the LaunchAgent.",
"type": "integer",
"default": "1200"
},
"noTimers": {
"title": "No Timers",
"description": "This will disable all functionality related to the userExperience preference domain.",
"type": "boolean",
"default": "false"
},
"nudgeRefreshCycle": {
"title": "Nudge Refresh Cycle",
"description": "The amount of time in seconds Nudge will use as its core timer to refresh all the core code paths.\n\nNote: While you can lower this setting, it could make Nudge too aggressive. Be mindful of decreasing this value.",
"type": "integer",
"default": "60"
},
"randomDelay": {
"title": "Random Delay",
"description": "Enables an initial delay Nudge before launching the UI. This is useful if you do not want your users to all receive the Nudge prompt at the exact time of the LaunchAgent.",
"type": "boolean",
"default": "false"
}
}
}
},
"userInterface": {
"type": "array",
"items": {
"type": "object",
"title": "Settings regarding User Interface",
"properties": {
"fallbackLanguage": {
"title": "Fallback Language",
"description": "The language to revert to if no localizations are available for the device's current language.",
"type": "string",
"default": "en"
},
"forceFallbackLanguage": {
"title": "Force Fallback Language",
"description": "Force the custom localizations to the value of fallbackLanguage.",
"type": "boolean",
"default": "false"
},
"forceScreenShotIcon": {
"title": "Force ScreenShot Icon",
"description": "Force the built-in ScreenShot icon to render in the UI if a ScreenShot path is not passed.",
"type": "boolean",
"default": "false"
},
"iconDarkPath": {
"title": "Icon Dark Path",
"description": "A path to a local jpg, png, icns that contains the icon for dark mode. This will replace the Apple logo on the left side of Nudge.",
"type": "string",
"default": ""
},
"iconLightPath": {
"title": "Icon Light Path",
"description": "A path to a local jpg, png, icns that contains the icon for light mode. This will replace the Apple logo on the left side of Nudge.",
"type": "string",
"default": ""
},
"screenShotDarkPath": {
"title": "ScreenShot Dark Path",
"description": "A path to a local jpg, png, icns that contains the screen shot for dark mode. This will replace the Big Sur logo on the lower right side of Nudge.",
"type": "string",
"default": ""
},
"screenShotLightPath": {
"title": "ScreenShot Light Path",
"description": "A path to a local jpg, png, icns that contains the screen shot for light mode. This will replace the Big Sur logo on the lower right side of Nudge.",
"type": "string",
"default": ""
},
"simpleMode": {
"title": "Simple Mode",
"description": "Enables Nudge to launch in the simplified user experience.",
"type": "boolean",
"default": "false"
},
"singleQuitButton": {
"title": "Single Quit Button",
"description": "Only display one quit button regardless of proximity to the due date.",
"type": "boolean",
"default": "false"
},
"updateElements": {
"title": "Update Elements",
"description": "A list of arrays, enabling further customization to the Nudge UI. Please see the updateElements wiki article for more information.",
"type": "array",
"items": {
"type": "string",
"title": "Elements"
},
"default": []
}
}
}
},
"required": [
"requiredInstallationDate",
"requiredMinimumOSVersion"
]
}
}