Jamf Pro Cloud customers can upload packages to JCDS 2.0 through the official API, but the workflow is more complex than the legacy method and requires checking for existing packages and uploading metadata afterwards. JamfPackageUploader handles it all for you.
If you publish a useful open source Mac admin tool, expect more users, questions, and maintenance work. Good documentation, issue tracking, releases, and community support can help manage the burden and keep things sustainable.
I presented at MacAdmins UK 2023 on erase-install, a tool for upgrading and reinstalling macOS, covering its evolution, current use cases, and the lessons learned from maintaining a widely used open source project.
JamfPackageCleaner automatically removes old Jamf package uploads by name pattern and version count, helping keep Jamf Pro tidy and preventing disk bloat as AutoPkg-managed package repositories grow.
This post introduces UserInstallers for AutoPkg, letting app installs target the current user's Applications folder so apps behave more like user-owned software and avoid admin prompts during updates.
System extension entries in the macOS Network pane can remain after uninstall when an MDM allow-list profile still exists. Removing the profile clears the orphaned entries, even though systemextensionsctl does not show them.
Running softwareupdate --list can trigger hangs and inconsistencies; this post explains why reading the existing Software Update plist is usually a safer and more accurate way to discover available updates and whether upgrades require a restart.
In episode 276, I joined the MacAdmins Podcast to discuss major changes in Jamf APIs, the impact on JSSImporter, and how JamfUploader grew to keep AutoPkg workflows working with modern Jamf Pro.
At the MacAdmins 2022 Campfire Sessions, I presented Demystifying JamfUploader, showing how to take AutoPkg and Jamf Pro workflows beyond package uploads with scripting, templating, and automation.
AutoPkg can stage tested package uploads to production without re-importing by saving the last successful package details to disk and reusing them in separate production recipes, reducing manual Jamf work and supporting multi-instance deployments.