Skip to content

osVersionRequirements

Dan K. Snelson edited this page Nov 23, 2021 · 37 revisions

osVersionRequirements - Type: Array, Default Value: []

The required components necessary to enforce an Operating System version through Nudge.

Specify one array to enforce a single Operating System version across all machines or specify multiple arrays for specific enforcements.

aboutUpdateURL - Type: String, Default Value: None, Required: No

A single URL, enabling the More Info button URL path.

Note: If this value is passed with aboutUpdateURLs, the aboutUpdateURLs key will be ignored.

aboutUpdateURLs - Type: Array, Default Value: [], Required: No

A list of arrays, enabling localization of the More Info button URL path. Please see the aboutUpdateURLs wiki article for more information.

Note: If this value is not passed, the more_info button will be hidden.

majorUpgradeAppPath - Type: String, Default Value: "", Required: No

v1.1.3 and higher only

The full path to a standalone macOS installer for a major upgrade.

Real-world Examples
No. Desired
Behavior
macOS Account Type* userInterface : actionButtonPath optionalFeatures : attemptToFetchMajorUpgrade osVersionRequirements : majorUpgradeAppPath
1 Execute custom Munki Self Service or Jamf Self Service policy Administrator

Standard User
Munki:
"actionButtonPath": "munki://updates",

Jamf Pro:
"actionButtonPath": "jamfselfservice://content?entity=policy&id=1&action=execute",
Ignored due to actionButtonPath Ignored due to actionButtonPath
2 Launch pre-cached macOS standalone installer Administrator Not included / Removed false /Applications/Install macOS Monterey.app
3 Cache and launch macOS standalone installer Administrator Not included / Removed true /Applications/Install macOS Monterey.app
Notes

*For Mac computers with Apple silicon, the user must be a Volume Owner. (See also: Schedule an OS Update)

  1. When using userInterface : actionButtonPath, you will lose the dynamic capability for updateDevice supporting minor / major upgrades, so it will be up to your separate tool to handle this logic.
  2. Requires a major macOS installer to be pre-cached and for the user to have local administrative rights
  3. Leverages softwareupdate --fetch-full-installer to download the macOS standalone installer and requires the user to have local administrative rights

requiredInstallationDate - Type: String for JSON or Date for Profile, Default Value: "", Required: Yes

The required installation date for Nudge to enforce the required operating system version.

You must follow a standard date string as YYYY-MM-DDTHH:MM:SSZ - Example: "2021-01-31T00:00:00Z"

Note: When utilizing a profile it is recommend to use the date key and not the string key for this. While string will work, it is not the recommended key format. A string is necessary for jamfs's JSON Schema Manifest

<key>requiredInstallationDate</key>
<date>2021-02-28T00:00:00Z</date>

requiredMinimumOSVersion - Type: String, Default Value: "", Required: Yes

The required minimum operating system version.

Note: When passing versions such as 11.2.0 it will be normalized to 11.2. It is recommended to remove the trailing zero from the version number.

targetedOSVersions (Deprecated as of v1.1.0) - Type: Array, Default Value: []

v1.0.0 only The versions of macOS that require a security update.

You can specify single version or multiple versions, but they must be within an array.

Examples:

"targetedOSVersions": [
  "11.0"
]
"targetedOSVersions": [
  "11.0",
  "11.0.1",
  "11.1",
  "11.2"
]

targetedOSVersionsRule - Type: String, Default Value: "", Required: No

v1.1.0 and higher only

For more documentation please see the targetedOSVersionsRule wiki article

The required minimum operating system version. Rules take the following precedence:

  • full OS match (example: device is running 11.5.1 and rule is 11.5.1)
  • major OS match (example: device us running 11.5.1 and rule is 11)
  • default match (example: device is running 11.5.1 and rule is default or targetedOSVersionsRule key is not present)

Note: Passing identical rules will result in "undefined" behavior. Currently with v1.1.0, the last identical rule will be honored. Passing a value of "default" is identical to not passing this key, allowing concurrent deployments of Nudge v1.0 and v1.1.0 in the same environment.

Examples:

"targetedOSVersionsRule": "11.5.2"
"targetedOSVersionsRule": "11"
"targetedOSVersionsRule": "default"

Example (JSON)

This example allows an admin to support both v1.0 and v1.1.0 behavior

{
    "osVersionRequirements": [
      {
        "aboutUpdateURL": "https://apple.com",
        "requiredInstallationDate": "2021-07-30T00:00:00Z",
        "requiredMinimumOSVersion": "11.5.2",
        "targetedOSVersions": [
          "11.0",
          "11.0.1",
          "11.1",
          "11.2",
          "11.2.1",
          "11.2.2",
          "11.2.3",
          "11.3",
          "11.3.1",
          "11.4",
          "11.5",
          "11.5.1"
        ],
        "targetedOSVersionsRule": "default"
      }
    ]
}

Example (Mobile Configuration)

This example allows an admin to support both v1.0 and v1.1.0 behavior

<?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>PayloadContent</key>
    <array>
      <dict>
        <key>PayloadDescription</key>
        <string>Configures osVersionRequirements preferences</string>
        <key>PayloadDisplayName</key>
        <string>Nudge Preferences</string>
        <key>PayloadIdentifier</key>
        <string>com.github.macadmins.Nudge.preferences.example.osVersionRequirements</string>
        <key>PayloadOrganization</key>
        <string></string>
        <key>PayloadType</key>
        <string>com.github.macadmins.Nudge</string>
        <key>PayloadUUID</key>
        <string>CA02957C-7472-446B-9F77-3E0414405556</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>osVersionRequirements</key>
        <array>
          <dict>
            <key>aboutUpdateURL</key>
            <string>https://apple.com</string>
            <key>requiredInstallationDate</key>
            <date>2021-07-30T00:00:00Z</date>
            <key>requiredMinimumOSVersion</key>
            <string>11.5.2</string>
            <key>targetedOSVersions</key>
            <array>
              <string>11.0</string>
              <string>11.0.1</string>
              <string>11.1</string>
              <string>11.2</string>
              <string>11.2.1</string>
              <string>11.2.2</string>
              <string>11.2.3</string>
              <string>11.3</string>
              <string>11.3.1</string>
              <string>11.4</string>
              <string>11.5</string>
              <string>11.5.1</string>
            </array>
            <key>targetedOSVersionsRule</key>
            <string>default</string>
          </dict>
      </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Configures Nudge application</string>
    <key>PayloadDisplayName</key>
    <string>Nudge</string>
    <key>PayloadIdentifier</key>
    <string>com.github.macadmins.Nudge.example.osVersionRequirements</string>
    <key>PayloadOrganization</key>
    <string>Nudge</string>
    <key>PayloadScope</key>
    <string>System</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>2F54F734-132D-4539-B583-F1DCF23DB5EB</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
  </dict>
</plist>
Clone this wiki locally