Skip to content

JamfPackageUploader

Graham Pugh edited this page Sep 3, 2026 · 1 revision

JamfPackageUploader

Description

A processor for AutoPkg that will upload a package to a JCDS or File Share Distribution Point.

Can be run as a post-processor for a pkg recipe or in a child recipe. The parent (pkg) recipe must output pkg_path as this is a required key.

Input variables

  • pkg_name:
    • required: False
    • description: Package name. If supplied, will rename the package supplied in the pkg_path key when uploading it to the fileshare.
  • pkg_display_name:
    • required: False
    • description: Package display name, which may be different to the pkg_name. If not supplied, reverts to pkg_name.
  • pkg_path:
    • required: False
    • description: Path to a pkg or dmg to import - **provided by previous pkg recipe/processor.
  • version:
    • required: False
    • description: Version string - **provided by previous pkg recipe/processor.
  • pkg_category:
    • required: False
    • description: Package category
  • pkg_info:
    • required: False
    • description: Package info field
  • pkg_notes:
    • required: False
    • description: Package notes field
  • pkg_priority:
    • required: False
    • description: Package priority.
    • default: 10
  • reboot_required:
    • required: False
    • description: Whether a package requires a reboot after installation.
    • default:
  • os_requirements:
    • required: False
    • description: Package OS requirement
  • required_processor:
    • required: False
    • description: Package required processor. Acceptable values are 'x86' or 'None'
    • default: None
  • send_notification:
    • required: False
    • description: Whether to send a notification when a package is installed.
    • default: 'False'
  • replace_pkg:
    • required: False
    • description: Overwrite an existing package if True.
    • default: False
  • replace_pkg_metadata:
    • required: False
    • description: Overwrite existing package metadata and continue if True, even if the package object is not re-uploaded.
    • default: False
  • skip_metadata_upload:
    • required: False
    • description: For Jamf Cloud customers, skip the upload of package metadata. This allows a new package to be uploaded but will not write any metadata such as SHA512 hash, category, info, etc. This allows upload of packages with just create and read privileges on package objects (otherwise update rights are also required). Not for use by self-hosted Jamf customers, and not relevant in conjunction with jcds_mode. Note that replace_package key is not functional if skip_metadata_upload is set.
    • default: False
  • jcds_mode:
    • required: False
    • description: This option is no longer functional.
    • default: False
  • jcds2_mode:
    • required: False
    • description: This option is no longer functional.
    • default: False
  • aws_cdp_mode:
    • required: False
    • description: Upload package to an AWS S3 CDP using aws-cli tools. These must be manually installed on the AutoPkg client. Requires the S3_BUCKET_NAME key to be populated.
    • default: False
  • recalculate:
    • required: False
    • description: Recalculate the cloud distribution point inventory. Requires Jamf Pro 11.10+ and a configured JCDS endpoint.
    • default: False
  • JSS_URL:
    • required: True
    • description: URL to a Jamf Pro server to which the API user has write access.
  • API_USERNAME:
    • required: False
    • description: Username of account with appropriate API access to the Jamf Pro Server.
  • API_PASSWORD:
    • required: False
    • description: Password of account with appropriate API access to the Jamf Pro Server.
  • CLIENT_ID:
    • required: False
    • description: Client ID with access to access to jss, optionally set as a key in the com.github.autopkg preference file.
  • CLIENT_SECRET:
    • required: False
    • description: Secret associated with the Client ID, optionally set as a key in the com.github.autopkg preference file.
  • BEARER_TOKEN:
    • required: False
    • description: A pre-existing bearer token for the Jamf Pro API. If provided, the token will be validated and used directly, bypassing credential-based authentication.
  • JAMF_CLI_PROFILE:
    • required: False
    • description: A jamf-cli profile to use to obtain a bearer token. Requires jamf-cli to be installed and in the PATH. Set to a profile name to enable.
    • default: ""
  • PLATFORM_API_REGION:
    • required: False
    • description: Region for Jamf Platform API Gateway (e.g., 'us1', 'eu1', 'au1'). Required for Platform API authentication.
    • default: ""
  • PLATFORM_API_TENANT_ID:
    • required: False
    • description: Tenant ID for Jamf Platform API Gateway. Required for Platform API authentication.
    • default: ""
  • CLOUD_DP:
    • required: False
    • description: Indicates the presence of a Cloud Distribution Point. The default is deliberately blank. If no SMB DP is configured, the default setting assumes that the Cloud DP has been enabled. If at least one SMB DP is configured, the default setting assumes that no Cloud DP has been set. This can be overridden by setting CLOUD_DP to True, in which case packages will be uploaded to both a Cloud DP plus the SMB DP(s)."
  • SMB_URL:
    • required: False
    • description: URL to a Jamf Pro file share distribution point which should be in the form smb://server/share or a local DP in the form file://path. Subsequent DPs can be configured using SMB2_URL, SMB3_URL etc. Accompanying username and password must be supplied for each DP, e.g. SMB2_USERNAME, SMB2_PASSWORD etc.
  • SMB_USERNAME:
    • required: False
    • description: Username of account with appropriate access to a Jamf Pro fileshare distribution point.
  • SMB_PASSWORD:
    • required: False
    • description: Password of account with appropriate access to a Jamf Pro fileshare distribution point.
  • SMB_SHARES:
    • required: False
    • description: An array of dictionaries containing SMB_URL, SMB_USERNAME and SMB_PASSWORD, as an alternative to individual keys. Any individual keys will override this complete array. The array can only be provided via the AutoPkg preferences file.
  • show_upload_progress:
    • required: False
    • description: Show a curl progress bar during package upload.
    • default: False
  • recalculate_wait_time:
    • required: False
    • description: Time to wait for recalculation to complete.
    • default: 0
  • hash_poll_interval:
    • required: False
    • description: Seconds between polls when waiting for the server to compute the package hash after a JCDS upload.
    • default: 15
  • hash_poll_timeout:
    • required: False
    • description: Maximum seconds to wait for the server to compute the package hash after a JCDS upload before treating it as a failure.
    • default: 300
  • sleep:
    • required: False
    • description: Pause after running this processor for specified seconds.
    • default: "0"
  • max_tries:
    • required: False
    • description: Maximum number of attempts to upload the account. Must be an integer between 1 and 10.
    • default: "5"
  • dry_run:
    • required: False
    • description: If True, perform read-only checks and report what would change without making any writes.
    • default: False
  • skip_if:
    • required: False
    • description: Skip the process if a supplied predicate is met.

Output variables

  • pkg_path:
    • description: The path of the package as provided from the parent recipe.
  • pkg_name:
    • description: The name of the uploaded package.
  • pkg_uploaded:
    • description: True/False depending if a package was uploaded or not.
  • jamfpackageuploader_summary_result:
    • description: Description of interesting results.
  • process_skipped:
    • description: Boolean - True if the process was skipped due to skip_if predicate resolved to True.
  • dry_run_summary_result:
    • description: Summary of what would have been changed (only set when dry_run is True).

Clone this wiki locally