Skip to main content


Hey folks! Dropping in for another quick Self Service+ post on how to:



  • determine available URL schemes for a macOS app (in this example, Self Service+.app)

  • how to map policy URLs from Jamf Pro to the new schema and have the actions load within Self Service+




The Self Service app has historically supported URL schemes to automatically run a policy or open the app directly to a description of a given policy. Within the Self Service settings of an app policy in Jamf Pro there are installation and description URLs provided. Those URLs tie into URL schemes for the Self Service app, and can be launched in scripts and by sharing them directly via link.



For example, running the simple Terminal command open "jamfselfservice://content?entity=policy&id=392&action=view" one can launch Self Service classic and deep link right into a policy and view the description.


Self Service+ also includes this functionality, though the URL schemes are not displayed in Jamf Pro for policies yet. To find the available URL scheme for an app on macOS (in this example, Self Service+.app) PlistBuddy can be used to parse the Info.plist of the application and extract the CFBundleURLTypes:


/usr/libexec/PlistBuddy -c "Print :CFBundleURLTypes" "/Applications/Self Service+.app/Contents/Info.plist"

 The array that returns will show the available URL schemes that the application supports.


/usr/libexec/PlistBuddy -c "Print :CFBundleURLTypes" "/Applications/Self Service+.app/Contents/Info.plist"
Array {
Dict {
CFBundleURLSchemes = Array {
selfservicenotification
}
}
Dict {
CFBundleURLSchemes = Array {
selfservicecapability
}
}
}

As of this writing selfservicecapability is the main URL scheme to trigger policy actions within the app catalog component of Self Service+. Meaning, if you take:


open "jamfselfservice://content?entity=policy&id=392&action=view"


and want that policy to run in Self Service+ instead of Self Service classic, the URL scheme would update to:


open "selfservicecapability://content?entity=policy&id=392&action=view"


(For those curious, that is the ID of our Zoom installer policy on computers managed by Jamf IT.)


For admins interested in having policies run in one app versus the other, knowing that base URL scheme from the app makes some of that possible.


Hope this is helpful!


Related resources:


Thank you, Emily! 


Interesting. Good stuff!


Cheers, Emily!


OOOH This'll be so useful when I roll out Self Service+ to my users :)


 


It's nice to be able to link directly to other Self Service pages. Linking to the Teams installer from the Teams uninstall page or the Ricoh driver installer from the department Ricoh printer's install page? *chef's kiss*


good find!  thanks for sharing!

 


There have been some updates on this topic so I thought I’d share some new details. Here are some updates to the URL types for Self Service (classic) and Self Service+ that I shared on the Mac Admins Slack:

emily.kausalik@12:34:~$ /usr/libexec/PlistBuddy -c "Print :CFBundleURLTypes" "/Applications/Self Service+.app/Contents/Info.plist"
Array {
Dict {
CFBundleURLSchemes = Array {
selfservicenotification
}
}
Dict {
CFBundleURLSchemes = Array {
selfservicecapability
}
}
Dict {
CFBundleURLSchemes = Array {
selfservice
}
}
Dict {
CFBundleURLSchemes = Array {
jamfselfservice
}
}
}
emily.kausalik@12:39:~$ /usr/libexec/PlistBuddy -c "Print :CFBundleURLTypes" "/Applications/Self Service.app/Contents/Info.plist"
Array {
Dict {
CFBundleURLName = com.jamfsoftware.selfservice.mac
CFBundleURLSchemes = Array {
jamfselfservice
selfservice
}
}
}

If you’re testing and want to guarantee that a policy link opens SSP instead of SSc I’d suggest sticking with selfservicecapability:// if both apps are installed on a computer.


if anyone uses the bundle ID of self service & self service apps, they differ as well:

 

Self service is: com.jamfsoftware.selfservice.mac

Self Service+ is: com.jamf.selfserviceplus