# About Patch Notifier
Patch Notifier is the application used to allow user consent of updates. When an update to an application is occurring, Alectrona Patch determines if the application is running and if not will silently update the application in the background.
However, in the event that the application requiring an update is running, Patch Notifier presents a dialog informing the user that an update is available. This provides the user with an opportunity to update or defer.
When a user chooses the defer option while encountering a Patch Notifier update dialog, they will be prompted to update again at the next scheduled Patch Agent run (which occurs every 4 hours by default).
Opportunity to Defer
When Deferral Limits are not configured, the user has the opportunity to indefinitely defer updates to open applications; this is the default behavior.
Patch Notifier is located at the following path:
# Custom Branding Settings
You can customize Patch Notifier's update dialog for your organization including your own logo, custom descriptions, button labels, and more - all using a configuration profile. Reference the Preference Keys for General Settings below to learn all of the available customizations.
# Deferral Limits
Configuring Deferral Limits allows an admin to specify how many deferrals are available for an end-user when updating. This can be set for all software titles, for individual software titles, or a combination of both with distinct limits.
The following two images show how the Patch Notifier update dialog changes when Deferral Limits are set. The first image warns the end-user of how many deferrals remain available. The next image indicates that the end-user has met the set Deferral Limit, and that the software title will be closed after a short period of time. All of these settings can be enabled and customized using a configuration profile. Reference the Preference Keys for Deferral Limits below to learn all of the available customizations.
Per-user Deferral Tracking
Deferral Limits are tracked on a per-user basis. In a shared device environment, a unique end-user would have to meet a Deferral Limit themselves before they'd see the final update dialog where a forced update would occur.
# Preference Keys for General Settings
|DialogDescription||The main description that appears in the update dialog.||<key>DialogDescription</key>|
|UpdateButtonLabel||The label or displayed text in the update button.||<key>UpdateButtonLabel</key>|
|DeferButtonLabel||The label or displayed text in the defer button.||<key>DeferButtonLabel</key>|
|ContentImagePath||Path to a locally stored image to use as the content image of the update dialog (PNG/JPG/GIF/TIFF).||<key>ContentImagePath</key>|
|DialogTimeout||The duration, in seconds, that the update dialog will appear on screen before performing a timeout.||<key>DialogTimeout</key>|
|DialogHelpText||Enable the help button and populate the text displayed on screen when clicked.||<key>DialogHelpText</key>|
<string>Not to worry your company is here to help.</string>
|DialogHelpToolTip||Customizes the tooltip of the help button (when enabled).||<key>DialogHelpToolTip</key>|
<string>About this message.</string>
|DialogTitle||The title of the update dialog window.||<key>DialogTitle</key>|
# Preference Keys for Deferral Limits
|DeferralLimit||Sets a global Deferral Limit for all software.||<key>DeferralLimit</key>|
|DeferralLimitExceptions||Sets exceptions to the global Deferral Limit, or irrespective of it.||<key>DeferralLimitExceptions</key>|
|FinalDialogDescription||The main description that appears in the final update dialog.||<key>FinalDialogDescription</key>|
<string>You've deferred enough, an update is about to occur!</string>
|DialogDeferralText||The text that appears below the main description in the update dialog.||<key>DialogDeferralText</key>|
|IgnoreDeferralText||Does not include the deferral text in the update dialog’s description.||<key>IgnoreDeferralText</key>|
|RecordTimeoutAsDeferral||When an update dialog timeout occurs, record a deferral rather than taking no action.||<key>RecordTimeoutAsDeferral</key>|
|FinalDialogTimeout||The duration, in seconds, that the final update dialog will appear on screen before performing an update.||<key>FinalDialogTimeout</key>|
# DialogDescription Variables
The following variables can be used in the DialogDescription, FinalDialogDescription, and DialogDeferralText values so that you can still display application-specific information when using custom branding for Patch Notifier.
|PATCH_FRIENDLY_NAME||The friendly name of the software title. Example: "Google Chrome".|
|PATCH_TARGET_VERSION||The version of the software title to be installed.|
|PATCH_INSTALLED_VERSION||The version of the software title that is currently installed.|
|PATCH_UPDATE_BUTTON_LABEL||The label that is displayed in the update button. Customizable with the UpdateButtonLabel key.|
|PATCH_DEFER_BUTTON_LABEL||The label that is displayed in the defer button. Customizable with the DeferButtonLabel key.|
|PATCH_DEFERRAL_LIMIT||The Deferral Limit specified for the software title.|
|PATCH_DEFERRALS_UNTIL_LIMIT||The number of deferrals until the user has met the Deferral Limit for the software title. This variable is used by default if DeferralLimit is set.|
|PATCH_DEFERRAL_COUNT||The number of times the user has deferred the update to a software title.|
|PATCH_FINAL_DIALOG_TIMEOUT||The configured timeout of the final update dialog.|
Are you a Jamf Pro admin?
See our Deployment doc to see how you can customize Patch Notifier in Jamf Pro using JSON Schema Manifests.