Monitoring

You can ask to Octory to monitor the installation of applications and packages. For now, it can monitor applications and packages installed via Jamf, AirWatch (Workspace ONE) and via VPP (or other services that use the App Store). To ask Octory to monitor an application or package installation, you add an item in the Monitors array in the configuration file. You can also ask to monitor a file a a specified path, which will generate a variable you can use in a condition or see in the logs.

Application monitoring

Key Type Possible values Explanation Is Required
Type String Application Let the application know this monitor is an application one.
Identifier String - The bundle identifier used by the system to download an application from the Mac App Store. Useful only when installing VPP applications which are not downloaded directly in the /Applications folder (like Microsoft applications for example). Example: com.microsoft.Word
Name String - The name of the application or package as it will appear in the MDM log or in the /Applications folder for App Store downloads. You have to ensure that the value of this key is contained in the name of the installed package or application ⚠️
DisplayName String - The name which will be displayed to the user in the AppMonitoring component. Otherwise, it's the Name key which is displayed, or the Identifier key if specified.
Installer String Jamf, AirWatch, System Specify how the application will be installed. If the application is installed with Jamf or AirWatch directly, you can choose the Jamf or AirWatch value. If it is by App Store (like VPP), choose the System value. ⚠️
Detail String - Detail text displayed under the name or display name in the AppMonitoring component
IconURL String - Let you specify a local or online URL for the icon to be shown in the AppMonitoring component. Octory will use a generic icon image if not specified
Condition String - Specify if the monitor should be installed for the overall installation completion. When the condition evolves, an animation occurs in the AppMonitorComponent to insert or remove the component. More information on conditions
PRO
GenerateVariable Boolean - If set to true, the application will generate a variable for this monitor, associated to its current installation state. This variable can then be used as any other in a action or to be watched in the logs. The format is [NAME]_INSTALLATION_STATE and thus can take 4 values "Installing", "Installed", "Not installed", "Installation failed". For example with "Microsoft_Teams" for the Name key, this could give: MICROSOFT_TEAMS_INSTALLATION_STATE: Installing
Example

Monitor for the application Things, installed via VPP. The App Store identified the application as Things3 so it's the one written here. The name displayed to the user is Things.


    <dict>
        <key>Type</key>
        <string>Application</string>
        <key>Name</key>
        <string>Things3</string>
        <key>DisplayName</key>
        <string>Things</string>
        <key>Detail</key>
        <string>Your soon favorite To-do list</string>
        <key>Installer</key>
        <string>System</string>
    </dict>
    

Monitor for the application VMware Fusion, installed via Jamf. A placeholder is used to address the icon path.


    <dict>
        <key>Type</key>
        <string>Application</string>
        <key>Name</key>
        <string>VMWareFusion</string>
        <key>DisplayName</key>
        <string>VMware Fusion</string>
        <key>Installer</key>
        <string>Jamf</string>
        <string>${AppIconsFolderPath}/VMWare.png</string>
    </dict>
    

Monitor for the application Gimp, installed via AirWatch. The app name and the version are strictly identified by the Identifier key. The IconURL key addresses Wikipedia.


    <dict>
        <key>Type</key>
        <string>Application</string>
        <key>Identifier</key>
        <string>Gimp-v2.10.4.pkg</string>
        <key>DisplayName</key>
        <string>Gimp</string>
        <key>Detail</key>
        <string>Less boring meetings</string>
        <key>IconURL</key>
        <string>https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/The_GIMP_icon_-_gnome.svg/1024px-The_GIMP_icon_-_gnome.svg.png</string>
        <key>Installer</key>
        <string>AirWatch</string>
    </dict>
    

File monitoring

The application will generate a variable based on the file name: IS_[FILENAME]_[EXTENSION]_FILE_PRESENT with a true or false value. The check of the file presence happens every 5 seconds.

Key Type Possible values Explanation Is Required
Type String File Let the application know this monitor is a file one. ⚠️
Path String - The path to the file whose presence you want to monitor ⚠️
IsMandatory Boolean - If true, the application will prevent the user to quit if the file is not present. Default is false

Examples

Monitor the presence of the file termination.sh in the folder /Library/Application Support/Octory/Scripts/. The generated variable will be IS_TERMINATION.SH_FILE_PRESENT


    <dict>
        <key>Type</key>
        <string>File</string>
        <key>Path</key>
        <string>/Library/Application Support/Octory/Scripts/termination.sh</string>
    </dict>
    

Monitor the presence of the file filou.txt in the user home folder /Library/Application Support/Octory/Scripts/. The generated variable will be IS_FILOU.TXT_FILE_PRESENT. Note the usage of a placeholder to get the current logged in user name.


    <dict>
        <key>Type</key>
        <string>File</string>
        <key>Path</key>
        <string>/Users/${USER_NAME}/filou.txt</string>
    </dict>