Skip to main content

Scheduling and Configuration Preferences

These preferences are used to customize the scheduling of updates and other advanced configuration options.

Domain: com.alectrona.patch-agent

SettingDescription
InstallOrUpdate

The software titles to automatically install or update (even if they are not currently installed) using the Patch Agent.

<key>InstallOrUpdate</key>
<array>
<string>1password</string>
<string>slack</string>
</array>
UpdateOnly

The software titles to automatically update if installed and out-of-date using the Patch Agent.

<key>UpdateOnly</key>
<array>
<string>google-chrome</string>
<string>docker-desktop</string>
</array>
OtherManagedSoftware

The software titles to enable the Active Intervals feature for even when not included in the InstallOrUpdate or UpdateOnly preference keys. These software titles might be updated using the patch command line tool in scripted workflows external to the Patch Agent.

<key>OtherManagedSoftware</key>
<array>
<string>zoom-us</string>
<string>vmware-fusion-13</string>
</array>
UpdateAll

Set to true to configure the automatic update every app in the Patch Catalog that is installed and out-of-date.

info

This will ignore apps specified in the UpdateOnly key.

<key>UpdateAll</key>
<true/>
UpdateAllExclusions

The software titles to exclude from being updated with the Update All feature.

<key>UpdateAllExclusions</key>
<array>
<string>mozilla-firefox-esr</string>
<string>nodejs-lts</string>
</array>
Onboarding

Defines a set of applications to install during a device's first-run experience. Configure CatalogIDs with the apps to install; optional inner keys control ordering, error handling, and re-install behavior. See Mac Onboarding for the full feature reference, common use cases, and the CLI counterpart.

Supported inner keys

CatalogIDs (array of catalog slugs) is the only required key. PreserveOrder (Bool, default true) sequences the installs in declared order while still downloading concurrently — useful for Setup Your Mac or Jamf Setup Manager workflows with dependency chains. HaltOnError (Bool, default false) stops the onboarding run when an install fails. SkipIfInstalled (Bool, default true) skips apps that are already installed. MaxDeviceAgeSeconds (Integer, unset by default) is an optional safety gate that skips Onboarding on devices older than the configured threshold; useful when deploying fleet-wide profiles that you don't want firing on existing devices.

Triggering Mac Onboarding

Mac Onboarding fires automatically at agent startup. You can also trigger it manually with sudo patch onboard install — useful for testing or for invoking onboarding from Self Service workflows. Companion patch onboard list and patch onboard reset subcommands let you inspect configured onboarding apps and reset onboarding state for re-runs.

<key>Onboarding</key>
<dict>
<key>CatalogIDs</key>
<array>
<string>microsoft-company-portal</string>
<string>google-chrome</string>
<string>slack</string>
</array>
<key>PreserveOrder</key>
<true/>
<key>HaltOnError</key>
<false/>
<key>SkipIfInstalled</key>
<true/>
</dict>
RunInterval

The Patch Agent runs every 4 hours by default. You can adjust this interval time for your environment.

info

This key is configured in seconds. The minimum setting is 600 seconds (10 minutes) and there is currently no maximum.

<key>RunInterval</key>
<integer>600</integer>
SkipFirstPatchAgentRun

When Alectrona Patch runs for the first time, it performs what is called a "Patch Agent Run" where it runs all configured installs/updates. You can skip the first Patch Agent Run by setting this key to true.

<key>SkipFirstPatchAgentRun</key>
<true/>
StartupJitterMin

The minimum number of seconds the Patch Agent waits before its first scheduled Patch Run after agent startup. Combined with StartupJitterMax, this creates a random jitter window that spreads first-boot network requests across a fleet rather than firing all at once.

info

Default is 10 seconds. Pair with StartupJitterMax (default 60 seconds) to control the jitter window.

Tuning

These defaults are pragmatic starting points, not measured against any specific fleet. If your fleet's boot-time network initialization or MDM profile delivery typically takes more (or less) time, adjust both values accordingly.

<key>StartupJitterMin</key>
<integer>10</integer>
StartupJitterMax

The maximum number of seconds the Patch Agent waits before its first scheduled Patch Run after agent startup. Combined with StartupJitterMin, this creates a random jitter window that spreads first-boot network requests across a fleet.

info

Default is 60 seconds. If set lower than StartupJitterMin, the agent uses StartupJitterMin as a fixed delay and logs a warning.

<key>StartupJitterMax</key>
<integer>60</integer>
RunOnConstrainedNetworks

Set to false to pause automatic updates when connected to expensive networks like cellular, personal hotspots, or network interfaces in Low Data Mode.

<key>RunOnConstrainedNetworks</key>
<false/>
ActiveIntervals

The Patch Agent will attempt to silently update any recently deferred app that exists in the InstallOrUpdate or UpdateOnly keys immediately after that app has been terminated by the user (even during an interval period). You can disable this behavior by setting to false.

<key>ActiveIntervals</key>
<false/>
RemovePatchSymlink

Set to true to remove the symlink located at /usr/local/bin/patch. This will remove patch from the user's $PATH and allows for accessing the built-in BSD patch command without using its full path.

Don't Forget

When setting this key to true you will need to access the Patch CLT at its full path in Terminal or custom scripts.

<key>RemovePatchSymlink</key>
<true/>
ReconAfterInstall

Set to true to perform a Jamf Pro inventory update after a software title is installed or updated using the Patch Agent.

<key>ReconAfterInstall</key>
<true/>
DeferIfRunning

If an app is running when an update occurs, setting this key to true will suppress the Classic Update Dialog and automatically perform a deferral.

info

This setting only affects the Classic Update Dialog. It does not suppress Notification Center, popover, or banner notifications from the Patch Menu Bar app.

<key>DeferIfRunning</key>
<true/>
RespectDND

Set to true to suppress Patch update notifications (Classic Update Dialog, popover, and banner deliveries) for users that have Do Not Disturb (DND) enabled. Has no effect on Notification Center deliveries — the system handles focus state there.

<key>RespectDND</key>
<true/>
RespectMeetings

Set to true to suppress Patch update notifications (Classic Update Dialog, popover, and banner deliveries) for users that are likely in a Zoom, Webex Meetings, or Microsoft Teams meeting. Has no effect on Notification Center deliveries — the system handles focus state there.

<key>RespectMeetings</key>
<true/>
UpdateMAS

Set to true to attempt to update and convert Mac App Store (MAS) apps to their non-MAS counterpart.

info

This feature only applies to apps you have configured Alectrona Patch to manage updates for using either the InstallOrUpdate or UpdateOnly keys. Additionally, it only affects Mac App Store apps that have a supported non-Mac App Store counterpart (there are relatively few of these).

<key>UpdateMAS</key>
<true/>
Make It Easy

All of these preferences can be effortlessly configured with our Patch Desktop app.