# Preference Keys - Catalog Agent

This article describes all available preference keys for the App Catalog Agent, responsible for installing and updating apps.

## Preference domain

When creating the Configuration Profile, the preference domain must be set to: **nl.root3.catalog**

## Keys

### `authorization` (required)

The authorization key is required for the App Catalog to communicate with the backend service. Required for both the Catalog Agent and Catalog App. You can obtain your authorization key in your [Profile](https://appcatalog.cloud/profile).

**Key:** `authorization`

**Value type:** String

**Default:** -

**Example:**

{% code lineNumbers="true" %}
```xml
<key>authorization</key>
<string>AUTHORIZATION_CODE</string>
```
{% endcode %}

### `AllowUpdatesContrainedNetworks`

By default, the update schedule will **not** perform updates if the Mac is connected to a Personal Hotspot or another expensive or constrained network, such as when Low Data Mode is enabled. Updating apps can be an expensive network activity and not desirable while using cellular data or when bandwidth is limited. Enabling this setting will overrule this behaviour and always update, regardless of the network type.

**Key:** `AllowUpdatesContrainedNetworks`

**Value type:** Boolean

**Default:** false

**Example:**

{% code lineNumbers="true" fullWidth="false" %}
```xml
<key>AllowUpdatesContrainedNetworks</key>
<true/>
```
{% endcode %}

### `DelayAppUpdates`

Delay rules allow granular control over which updates are delayed and for how many days. These rules can be very simple or very complex, based on your needs. Rules are evaluated from top to bottom in the Configuration Profile. The first rule that matches an app's Bundle ID will be applied. More information: [delaying-app-updates](../../catalog-agent/updating-apps/delaying-app-updates "mention")

**Key:** `DelayAppUpdates`

**Value type:** Array of dictionaries

**Dictionary value types:**

* **BundleID (required):** String, a valid app Bundle Identifier ([Get an app Bundle Identifier](../../how-tos/get-an-app-bundle-identifier)) or wildcard.
* **Days (required):** Integer, number of days to delay.

**Default:** -

**Examples**:

Delay all app updates for 3 days:

{% code lineNumbers="true" %}
```xml
<key>DelayAppUpdates</key>
  <array>
    <dict>
      <key>BundleID</key>
      <string>*</string>
      <key>Days</key>
      <integer>3</integer>
    </dict>
  </array>
```
{% endcode %}

### `ExcludeAppsUpdate`

By default, all installed apps are checked against apps in the App Catalog and updated as part of the update schedule. To exclude apps from the update schedule, add all the Bundle Identifiers from [https://portal.appcatalog.cloud/catalog](https://portal.appcatalog.cloud/catalog) to this preference.

**Key:** `ExcludeAppsUpdate`

**Value type:** Array of strings

**Default:** -

**Example:**

<pre class="language-xml" data-line-numbers><code class="lang-xml">&#x3C;key><a data-footnote-ref href="#user-content-fn-1">ExcludeAppsUpdate</a>&#x3C;/key>
&#x3C;array>
    &#x3C;string>com.google.Chrome&#x3C;/string>
    &#x3C;string>org.mozilla.firefox&#x3C;/string>
&#x3C;/array>
</code></pre>

### `HideUpdateNotifications`

By default, update notifications are displayed to the end user. Setting this key to `false` disables update notifications.

**Key:** `HideUpdateNotifications`

**Value type:** Boolean

**Default:** false

**Example:**

{% code lineNumbers="true" %}
```xml
<key>HideUpdateNotifications</key>
<true/>
```
{% endcode %}

### `IncludeAppsUpdate`

By default, all installed apps are checked against apps in the App Catalog and updated as part of the update schedule. To **only** update specific apps, you can specify rules in the `IncludeAppsUpdate` key. These rules can be very simple or more complex, based on your needs. Rules are evaluated from top to bottom in the Configuration Profile. The first rule that matches an app's Bundle ID will be applied.

**Key:** IncludeAppsUpdate

**Value type:** Array of strings

**Default:** -

**Examples**:

Update only apps from Mozilla, Google and the Root3 Support App:

{% code lineNumbers="true" %}
```xml
<key>IncludeAppsUpdate</key>
  <array>
    <string>org.mozilla.*</string>
    <string>com.google.*</string>
    <string>nl.root3.support</string>
  </array>
```
{% endcode %}

### `MandatoryApps`

The preference key `MandatoryApps` enables you to configure a set of apps (Bundle IDs) that must always be installed on a device. An enforcement system checks these apps hourly and reinstalls them if they’re removed. This feature simplifies device enrollment and the initial installation of apps without dependencies from the MDM solution other than a Configuration Profile. It especially simplifies deployments using MDM solutions like Microsoft Intune. More information: [mandatory-apps](../../catalog-agent/installing-apps/mandatory-apps "mention")

**Key**: `MandatoryApps`

**Value type**: Array of strings

**Default**: -

**Availability**: macOS 14+

**Example**:

{% code lineNumbers="true" %}
```xml
<key>MandatoryApps</key>
<array>
    <string>nl.root3.support</string>
    <string>com.microsoft.edgemac</string>
    <string>com.openai.chat</string>
    <string>com.google.Chrome</string>
    <string>com.microsoft.wdav</string>
</array>
```
{% endcode %}

### `NotificationTitle`

By default, app installs or updates will generate a user notification in Notification Center. This notifications contains an optional title shown at the top of the notification. You can configure this title to your organization's name or another title that makes sense to the user.

**Key:** `NotificationTitle`

**Value type:** String

**Default:** -

**Example:**

{% code lineNumbers="true" %}
```xml
<key>NotificationTitle</key>
<string>Acme Inc.</string>
```
{% endcode %}

### `Reference`

You can create multiple Configuration Profiles and configure a reference for each. Using a reference will shows results for the computers associated with this reference in the App Catalog Dashboard.

**Key:** `Reference`

**Value type:** String

**Default:** -

**Example:**

{% code lineNumbers="true" %}
```xml
<key>Reference</key>
<string>Development</string>
```
{% endcode %}

### `TeamViewerHostID`

The App Catalog has an integration with TeamViewer Host to apply your organization's custom configuration. To use this integration, the unique **Configuration ID** from the TeamViewer Management Console. Check [Get TeamViewer Configuration ID](../../how-tos/get-teamviewer-configuration-id) for instructions how to get this value.

**Key:** `TeamViewerHostID`

**Value type:** String

**Default:** -

**Example:**

{% code lineNumbers="true" %}
```xml
<key>TeamViewerHostID</key>
<string>idcXXXXXXX</string>
```
{% endcode %}

### `TeamViewerQuickSupportID`

The App Catalog has an integration with TeamViewer QuickSupport to apply your organization's custom configuration. To use this integration, the unique **Configuration ID** from the TeamViewer Management Console. Check [Get TeamViewer Configuration ID](../../how-tos/get-teamviewer-configuration-id) for instructions how to get this value.

**Key:** `TeamViewerQuickSupportID`

**Value type:** String

**Default:** -

**Example:**

{% code lineNumbers="true" %}
```xml
<key>TeamViewerQuickSupportID</key>
<string>idcXXXXXXX</string>
```
{% endcode %}

### `UpdateDeferrals`

This key allows you to customize the maximum number of deferrals if an application requires user interaction to start the update.&#x20;

**Key:** `UpdateDeferrals`

**Value type:** Integer

**Default:** 3

**Example:**

{% code lineNumbers="true" %}
```xml
<key>UpdateDeferrals</key>
<integer>2</integer>
```
{% endcode %}

### `UpdateInterval`

This key enables an automatic update schedule to update all available app updates. When configured to 1 or higher, the update schedule will run every X days. More info is available here: [**Updating Apps** ](../../catalog-agent/updating-apps)

**Key:** `UpdateInterval`

**Value type:** Integer

**Default:** -

**Availability**: macOS 13+

**Example:**

{% code lineNumbers="true" %}
```xml
<key>UpdateInterval</key>
<integer>1</integer>
```
{% endcode %}

[^1]: 
