Skip to main content

Property Key Monitors

This monitor checks the value of a specific key inside a plist file. It enables administrators to validate that application or system preferences are correctly set and remain aligned with organizational requirements.

The application will automatically generate a variable based on the name key in your Octory configuration: IS_[NAME]_PROPERTY_PRESENT with a true value if the PropertyKey exists AND with the ExpectedValue. It will set the variable to false otherwise.

info

The check of the property value happens every 5 seconds.

Keys

NameTypePossible valuesRequired
TypeStringPropertyRequired
NameString-Required
PathString-Required
PropertyKeyString-Required
ExpectedValueString-Required
DetailString-
DisplayNameString-
IconURLString-
IsMandatoryBoolean-
IsHiddenBoolean-
Condition PROString-

Detail

Type Required

Type: String
Possible values: Property
Explanation: Monitor type has to be Property.

Name Required

Type: String
Explanation: The internal name of the monitor. This identifier is also used if you enable variable generation.

Detail

Type: String
Explanation: Description text displayed under the name or display name in the MonitorsDisplay component.

DisplayName

Type: String
Explanation: The name shown to the user in the MonitorsDisplay component. Otherwise, it’s the Name key that is displayed.

Path Required

Type: String
Explanation: The absolute path to the plist file being monitored (e.g., /Library/Preferences/com.apple.TimeMachine.plist).

PropertyKey Required

Type: String
Explanation: The specific key inside the plist file to be monitored.

ExpectedValue Required

Type: String
Explanation: The value the specified key must match for the monitor to be considered successful. If the monitored key is a Boolean, you should use 1 or 0 as ExpectedValue to check if the value of the key is true or false.

IconURL

Type: String
Explanation: Let you specify a local or online URL for the icon to be shown in the MonitorsDisplay component. Octory will use a generic icon image if not specified.

IsMandatory

Type: Boolean
Default: true
Explanation: When set to false, the app monitor will be displayed in the MonitorsDisplay component but will not prevent the overall installation to be marked as complete and thus the app to be terminated when not all app monitors are installed.

IsHidden

Type: Boolean
Default: false
Explanation: If true, the monitor will not be displayed in the MonitorsDisplay compoenent. A hidden monitor can still be mandatory, this is more a UI option.

Condition PRO

Type: String
Explanation: Conditions to decide if the monitor should be shown in MonitorsDisplay component. When the condition evolves, an animation occurs in the MonitorsDisplay component to insert or remove the monitor. More information on conditions.

Example

Monitor for the plist file /Library/Preferences/com.company.app.plist, checking that the key AppSettings.EnableFeatureX is set to true. The monitor is identified internally as Plist Configuration Check and displayed to the user as Configuration Validation.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- ... -->
<key>Monitoring</key>
<dict>
<key>Monitors</key>
<array>
<dict>
<key>Type</key>
<string>Property</string>
<key>Name</key>
<string>Plist Configuration Check</string>
<key>DisplayName</key>
<string>Configuration Validation</string>
<key>Detail</key>
<string>Ensures plist key matches expected value.</string>
<key>Path</key>
<string>/Library/Preferences/com.company.app.plist</string>
<key>PropertyKey</key>
<string>AppSettings.EnableFeatureX</string>
<key>ExpectedValue</key>
<string>1</string>
<key>IconURL</key>
<string>${Monitors}/configuration.icns</string>
<key>IsHidden</key>
<false/>
</dict>
</array>
</dict>
<!-- ... -->
</dict>
</plist>