-
Notifications
You must be signed in to change notification settings - Fork 47
Configuration file (.plist)
The configuration file for the Enrollment App must be named with the “bundle identifier” of the builded app (ex. com.company.enrollment.plist) and must be located at the path:
~/Library/Preferences/
This configuration file contains all the customizable information that the app can handle dynamically after it’s been installed. For advanced configuration or customization you should act directly on the code.
The structure that this .plist file must respect is the following:
Key | Mandatory | Type | Note |
---|---|---|---|
phase | YES | Text | The phase that drive the app to the correct workflow. |
policies | YES | JamfPoliciesStore | The object that provide the Jamf policies the app needs. |
userInfo | YES | UserInfo | Info about the user. |
networkInfo | NO | NetworkInfo | Info about the network. |
selectedBundles | NO | [Text] | User’s selected budles. |
selectedRegistrationInfo | NO | [RegistrationChoice] | User's selected registration info. |
registration | NO* | RegistrationData | Registration module's data. |
postRegistrationPage | NO** | PostRegistrationPage | Post registration page's data. |
bundleSelectionPage | NO* | BundleSelectionPage | Bundle selection page's data. |
bundleInstallationPage | NO*** | BundleInstallationPage | Bundle installation page's data. |
postInstallationPage | NO*** | PostInstallationPage | Post installation page's data. |
*: At least one parameter between “registration” and “bundleSelectionPage” needs to be defined;
**: Mandatory if the registration parameter has been defined.
***: Mandatory if the bundleSelectionPage parameter has been defined.
This object provide all the main policies needed by the app to run the workflows.
Key | Mandatory | Type | Note |
---|---|---|---|
registrationPolicy | NO* | Text | Policy triggered during the registration process. |
removeFramework | YES | Text | Policy trigger to remove Jamf framework, profiles and apps from the running machine. |
bundleInstallationPolicy | NO* | Text | Policy triggered during the installation process. |
*: Needs to be defined if the relative phase’s data is defined.
This object provide info about the user.
Key | Mandatory | Type | Note |
---|---|---|---|
hrFirstName | NO | Text | The first name of the user. |
This object provide info about network parameters.
Key | Mandatory | Type | Note |
---|---|---|---|
speedTestResult | NO | Text | The result of the speed test done by the installing script. |
jpsCommSeconds | NO | Text | Value of the estimated communication buffer time with the jps. |
This object represent a user’s chosen registration option.
Key | Mandatory | Type | Note |
---|---|---|---|
fieldKey | YES | Text | The key that identify the registration field. |
fieldTitle | YES | Text | The title of the registration field. |
selectedOptionKeys | YES | [Text] | The keys of the chosen options. |
selectedOptionTitles | YES | [Text] | The title of the chosen options. |
isMultipleChoiseAllowed | YES | Bool | True if the field allow to chose more than one option. |
This object provide the info needed to show the registration process.
Key | Mandatory | Type | Note |
---|---|---|---|
pages | YES | [RegistrationPage] | The array of pages that will be showed during in the registration module. |
registrationStatus | NO | Bool | True if the user already completed the registration module. |
This object provide all the customisable info for the registration page it represent.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | InfoLabel | The title info of the registration page. |
subtitle | NO | InfoLabel | The subtitle info of the registration page. |
fields | YES | [RegistrationField] | The array of registration fields showed by the page. |
footer | NO | InfoLabel | The footer info of the registration page. |
This object is used to configure the text label with the info button on the right.
Key | Mandatory | Type | Note |
---|---|---|---|
label | YES | Text | The label for the text field. |
infoSection | NO | InfoSection | The info showed when the user click on the info button on the right of the text field. If not defined the info button will not appear. |
This object provide the informations to be showed inside the info popup.
Key | Mandatory | Type | Note |
---|---|---|---|
fields | YES | [InfoField] | The array of info fields. |
Key | Mandatory | Type | Note |
---|---|---|---|
label | YES | Text | The info field label (text showed on the right column of the info popup). |
description | YES | Text | The info field description (text showed on the left column of the info popup). |
iconName | NO | Text | The info field icon name. |
This object represent the registration field inside the registration page.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | Text | The title showed on top of the field. |
key | YES | Text | The key that represent this field. |
multipleChoiceAllowed | YES | Bool | True if the field allows to chose multiple options. |
showTitle | NO | Bool | True if the title of the field should be showed. |
options | YES | [RegistrationField.Option] | The array of the options for this field. |
This object represent an option of the registration field.
Key | Mandatory | Type | Note |
---|---|---|---|
key | YES | Text | The key of the option. |
label | YES | Text | The label of the option. |
isExclusive | NO | Bool | True if the selection of this option should deselect all the other selection for the same registration field. |
This object provide all the customisable info for the post registration page.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | InfoLabel | The title of the page. |
subtitle | NO | InfoLabel | The subtitle of the page. |
body | YES | Text | The body of the page. |
needsRestart | NO | Bool | True if you need a restart button on the post registration page. By default is false. |
restartTimeout | NO | Int | The timeout for the restart in seconds. By default is 300 (5 minutes). |
footer | NO | InfoLabel | The footer of the page. |
This object provide all the info needed to show the bundle selection page.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | InfoLabel | The title of the page. |
subtitle | NO | InfoLabel | The subtitle of the page. |
bundles | YES | [EnrollmentBundle] | The array of bundle to show in the page. |
This object represent a bundle.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | Text | The compact title of the bundle. |
extendedTitle | YES | Text | The extended title of the bundle. |
description | YES | Text | The description of the bundle. |
key | YES | Text | The key that represent the bundle. |
icon | YES | Text | The title of the icon for the bundle. |
status | YES | Int - InstallationStatus | The installation status for the bundle. 0 by default. |
bundleMessaging | NO | Text | The installation message for the bundle. Written by the installation script. |
time | NO | Text | The time needed to install the bundle. |
size | NO | Bool | The size in MB of the bundle. |
recommended | YES | Bool | True if the bundle is recommended. |
apps | YES | EnrollmentBundle.App | The array of the apps in the bundle. |
Installation status is an enumerator with integer raw value that represent the status of the installation of a bundle or a single app. The value that it can represent are:
0 - Installation pending
1 - Installation in progress
2 - Installed
3 - Error during installation
-1 - Unknown
This object represent one bundle’s app.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | Text | The title of the app. |
description | YES | Text | The description of the app. |
key | YES | Text | The key that represent the app. |
status | YES | InstallationStatus | The installation status of the app. |
icon | YES | Text | The name of the icon of the app. |
This object provide the info needed to show the bundle installation page.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | InfoLabel | The title of the page. |
subtitle | NO | InfoLabel | The subtitle of the page. |
bundleInstallationStatus | YES | Bool | True if the bundle installation is completed. |
This object provide all the customisable info for the post installation page.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | InfoLabel | The title of the page. |
subtitle | NO | InfoLabel | The subtitle of the page. |
items | YES | [PostInstallationPage.Item] | The array of items for the page. |
needsRestart | NO | Bool | True if you need a restart button on the post installation page. By default is false. |
restartTimeout | NO | Int | The timeout for the restart in seconds. By default is 300 (5 minutes). |
This object represent an item of the post installation page.
Key | Mandatory | Type | Note |
---|---|---|---|
title | YES | Text | The title of the item. |
description | YES | Text | The description of the item. |
iconName | YES | Text | The icon name. |
alternateDescription | NO | Text | The alternative description. |
ctaType | YES | String - CTAType | The call to action type for the item. |
ctaPayload | NO* | Text | The CTA payload. |
*: Needed if ctaType is different from “none”.
**: Needed if ctaType is "segue" and ctaPayload is "goToFilePickerPage".
The call to action type supported by the app:
none - No call to action to perform.
url - Open the URL passed in the payload.
policy - Trigger the JAMF policy passed in the payload.