-
Notifications
You must be signed in to change notification settings - Fork 37
Defining Packages Scripts and Installomator Labels
Baseline performs actions based on a configuration profile delivered via MDM or manually installed. The top level keys in the profile are arrays with dictionaries defined beneath them.
InitialScriptsInstallomatorPackagesScripts
By default, Baseline runs Installomator labels with the following arguments in order to ensure users are not prompted to quit applications:
BLOCKING_PROCESS_ACTION=kill
NOTIFY=silent
See the Defining Additional Features page if you do not want these Installomator options to be used.
Required arguments for an Installomator label:
-
<DisplayName>: The human facing name of this item. -
<Label>: The Installomator label
Optional arguments for an Installomator label:
-
<Arguments>: Additional options/arguments passed to Installomator for this label. These can be simple, or a completevaluesfromargumentscustom label. -
<Icon>: Define an icon which will appear on this row of the SwiftDialog list view. See SwiftDialog documentation for more details. -
<Subtitle>: Define a sub-title to be added to the row under the DisplayName of the SwiftDialog List View. SwiftDialog documentation -
<StatusIconWait>,<StatusIconSuccess>, and<StatusIconFail>: Use a custom SF symbol status icon for this item. If this key is omitted, then the Global status icon will be used for this item. Use this syntax to set the SF Symbol value:checkmark.seal.fill-green(sfsymbolname-color) -
<Retries>: Define the number of times Baseline will attempt to run this item. Default is 0. Global default for this item type can be set separately from individual items (See this page for details)[https://github.com/SecondSonConsulting/Baseline/wiki/Defining-Additional-Features]. -
<HideListView>boolean : Set this option totrueif you wish for Baseline to hide the list view entirely while this option runs. This might be useful if your item requires some kind of user interaction in order to complete.
Example Installomator configurations:
<key>Installomator</key>
<array>
<dict>
<key>DisplayName</key>
<string>Google Chrome</string>
<key>Label</key>
<string>googlechromepkg</string>
</dict>
<dict>
<key>DisplayName</key>
<string>Desktoppr</string>
<key>Label</key>
<string>valuesfromarguments</string>
<key>Arguments</key>
<string>"name=desktoppr" "type=pkg" "downloadURL=https://github.com/scriptingosx/desktoppr/releases/download/v0.3/desktoppr-0.3.pkg" "expectedTeamID=JME5BW3F3R"</string>
<key>Icon</key>
<string>SF=desktopcomputer</string>
<key>Subtitle</key>
<string>A utility for setting the desktop wallpaper.</string>
<key>StatusIconFail</key>
<string>x.circle.fill-red</string>
<key>StatusIconSuccess</key>
<string>checkmark.seal.fill-green</string>
<key>StatusIconWait</key>
<string>hourglass</string>
<key>Retries</key>
<integer>3</integer>
</dict>
</array>Required arguments for Packages:
-
<DisplayName>: The human facing name of this item -
<PackagePath>: The path to the package to be installed. The path can be defined in three ways- The filename of a package you have placed in the
/usr/local/Baseline/Packagesdirectory. This is useful if you package Baseline yourself and include additional packages. - A local file path. Example:
/Library/Application Support/ManagementDirectory/CompanyLogos.pkg - A remote URL hosting a package to be installed:
https://github.com/SecondSonConsulting/Renew/releases/download/v1.0.1/Renew_v1.0.1.pkg
- The filename of a package you have placed in the
Optional arguments for Packages:
-
<TeamID>: Use this to define the expected TeamID of a signed package in order to verify the authenticity. -
<MD5>: Use this to define the expected md5 hash to ensure the integrity of your package. -
<SHA256>: Use this to define the expected SHA256 hash to ensure the integrity of your package. -
<Arguments>: In the rare cases a .pkg has additional arguments you wish to pass through theinstallercommand, you can do so using this key. -
<Icon>: Define an icon which will appear on this row of the SwiftDialog list view. See SwiftDialog documentation for more details. -
<Subtitle>: Define a sub-title to be added to the row under the DisplayName of the SwiftDialog List View. SwiftDialog documentation -
<StatusIconWait>,<StatusIconSuccess>, and<StatusIconFail>: Use a custom SF symbol status icon for this item. If this key is omitted, then the Global status icon will be used for this item. Use this syntax to set the SF Symbol value:checkmark.seal.fill-green(sfsymbolname-color) -
<Retries>: Define the number of times Baseline will attempt to run this item. Default is 0. Global default for this item type can be set separately from individual items (See this page for details)[https://github.com/SecondSonConsulting/Baseline/wiki/Defining-Additional-Features].- For Scripts and Packages, downloads are not retried. or download retries, see the
curlOptionsfeature
- For Scripts and Packages, downloads are not retried. or download retries, see the
-
<HideListView>boolean : Set this option totrueif you wish for Baseline to hide the list view entirely while this option runs. This might be useful if your item requires some kind of user interaction in order to complete.
Required arguments for Scripts:
-
<DisplayName>: The human facing name of this item -
<ScriptPath>: The path to the script to be installed. The path can be defined in three ways- The filename of a script you have placed in the
/usr/local/Baseline/Scriptsdirectory. This is useful if you package Baseline yourself and include additional scripts. - A local file path. Example:
/Library/Application Support/ManagementDirectory/UserSetup.sh - A remote URL hosting a script to be run:
https://github.com/SecondSonConsulting/macOS-Scripts/blob/main/sophosInstall.sh
- The filename of a script you have placed in the
Optional arguments for Scripts:
-
<MD5>: Use this to define the expected md5 hash to ensure the integrity of your script. -
<SHA256>: Use this to define the expected SHA256 hash to ensure the integrity of your script. -
<AsUser>: Boolean, defaults false. Use this to have Baseline run the designated script in the logged in user context. If true while no user is logged in, the items will be skipped and marked as Failed. -
<Arguments>: Use this to define additional arguments you wish to pass to your script. -
<Icon>: Define an icon which will appear on this row of the SwiftDialog list view. See SwiftDialog documentation for more details. -
<Subtitle>: Define a sub-title to be added to the row under the DisplayName of the SwiftDialog List View. SwiftDialog documentation -
<StatusIconWait>,<StatusIconSuccess>, and<StatusIconFail>: Use a custom SF symbol status icon for this item. If this key is omitted, then the Global status icon will be used for this item. Use this syntax to set the SF Symbol value:checkmark.seal.fill-green(sfsymbolname-color) -
<Retries>: Define the number of times Baseline will attempt to run this item. Default is 0. Global default for this item type can be set separately from individual items (See this page for details)[https://github.com/SecondSonConsulting/Baseline/wiki/Defining-Additional-Features].- For Scripts and Packages, downloads are not retried. or download retries, see the
curlOptionsfeature
- For Scripts and Packages, downloads are not retried. or download retries, see the
-
<HideListView>boolean : Set this option totrueif you wish for Baseline to hide the list view entirely while this option runs. This might be useful if your item requires some kind of user interaction in order to complete.
<key>Scripts</key>
<array>
<dict>
<key>DisplayName</key>
<string>Example Script</string>
<key>ScriptPath</key>
<string>https://github.com/SecondSonExampleScript.sh</string>
<key>Arguments</key>
<string>--group "Standard Workstations"</string>
<key>MD5</key>
<string>e567252z26d6032dd232df75fd3ba500</string>
</dict>
</array>
- InitialScripts are processed by the same function as
Scriptsand thus have the same requirements and features. - InitialScripts are run immediately upon a confirmed end user login, and prior to the main Dialog list.
- There is no SwiftDialog window open while Initial Scripts are being processed. This means admins are welcome to create their own custom SwiftDialog experience with branding and messaging as you see fit.
- It is recommended that Initial Scripts call a dialog window with the
--blurscreenand--ontopoptions to match the defaults used in the main Baseline script.
- InitialScripts are processed by the same function as
Scriptsand thus have the same requirements and features. -
FinalScriptsare run after all other items are processed, but before the List View window closes. - The intention is to use these to trigger webhooks or other completion tasks, but they can be used for anything you use a script to do.
- Utilize the
CloseListBeforeFinalScriptsfeature to close the List View before running these. This allows you to create scripts requiring user action (via swiftDialog or other mechanism) before Baseline completes.
For Scripts and Packages, each line item can contain a CurlOptions key. These options will be used when a remote path is defined and Baseline curls the package or script. Define curl options exactly like you would at the command line.
- Mosyle
- JumpCloud
- Addigy
- SimpleMDM
- FileWave
- Workspace ONE
- Jamf Pro
- Microsoft Intune
- Hexnode
- Iru formerly Kandji
- Apple Business
- FleetDM (Need contribution)
- Your MDM Provider Here... (Need contributions!)