Skip to content

Configuration file (.plist)

Simone Martorelli edited this page May 2, 2022 · 3 revisions

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.

JamfPoliciesStore

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.

UserInfo

This object provide info about the user.

Key Mandatory Type Note
hrFirstName NO Text The first name of the user.

NetworkInfo

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.

RegistrationChoice

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.

RegistrationData

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.

RegistrationPage

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.

InfoLabel

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.

InfoSection

This object provide the informations to be showed inside the info popup.

Key Mandatory Type Note
fields YES [InfoField] The array of info fields.

InfoField

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.

RegistrationField

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.

RegistrationField.Option

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.

PostRegistrationPage

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.

BundleSelectionPage

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.

EnrollmentBundle

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.

InstallationStatus

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

EnrollmentBundle.App

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.

BundleInstallationPage

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.

PostInstallationPage

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).

PostInstallationPage.Item

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".

CTAType

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.

Clone this wiki locally