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.
The check of the property value happens every 5 seconds.
Keys
| Name | Type | Possible values | Required |
|---|---|---|---|
| Type | String | Property | Required |
| Name | String | - | Required |
| Path | String | - | Required |
| PropertyKey | String | - | Required |
| ExpectedValue | String | - | Required |
| Detail | String | - | |
| DisplayName | String | - | |
| IconURL | String | - | |
| IsMandatory | Boolean | - | |
| IsHidden | Boolean | - | |
| Condition PRO | String | - |
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>