From around jamf 10.19 a new feature was added that is slowly gain more traction and that’s the ability to use JSON (JavaScript Object Notation) schemas in the Applications and Custom Settings payload. Over time jamf have updated and improved its functionality and ease of use. This article assumes you are on at least jamf 10.26.
So what does all that mean?
It means an app vendor, developer or anyone can create a schema that in turn can be used to create the Profile configuration directly in jamf rather than having to write XML or use other tools like ProfileCreator. This simplifies Profile creation and is a huge time saver.
So let’s give it a go….
Create a new Profile.
Name it and select a category just like creating any other Profile:
Once done scroll down and select the Applications and Custom Settings payload.
It will open up and show a few options:
Jamf Applications
External Applications
Upload
If you use other jamf applications such as jamf connect suite (Login, Sync Verify) you can set up the Profiles from here directly in jamf. For this article though we are going to use the External Applications option.
Select External Applications then click the +Add button on the right. The page will show as below with a Source dropdown:
Click the dropdown and you will see Repository and Custom Schema options. If you select Repository you will see an Application Domain dropdown and within this schemas for Chrome, MAU, Office, Outlook.
For this article lets choose the Custom Schema from the Source dropdown:
You will see a Preference Domain box and the Custom Schema box.
If we want to set up a Profile for NoMAD we would first enter the plist file name. The plist contains the configuration and will be created on the devices we scope the Profile to.
In the Preference Domain box enter com.trusourcelabs.NoMAD.json
Note the name is case sensitive so enter exactly as shown.
In the Custom Schema box we can now enter the JSON schema, lucky for us one has been created and you can find it here:
https://github.com/Jamf-Custom-Profile-Schemas/mscottblake-schemas/blob/master/com.trusourcelabs.NoMAD.json
Carefully copy and paste the XML from github into the Custom Schema field. I usually select the Raw view on github, then select all and copy.
Now scroll down past the Custom Schema field and you will see the JSON XML transformed into items configurable items right inside jamf.
Here you can see the Key’s you would set in XML as configurable items:
You may fine all the configuration items are shown but you can customise the list from the +Add/Remove Keys. Simply check or uncheck the items you require and click OK:
Go ahead and create your Profile by selecting the options you want and adding in the configuration required. The schema creator has helpfully added links to the NoMAD pages for each item so you can quickly see what the config item refers to. Remember to click Save regularly.
When you are ready to test the Profile scope to you test Mac and save again to push it to that device.
And that’s it. No more creating XML by hand, uploading, testing, editing and repeat. It can all be done in jamf.
This is just one example of a schema there are many other JSON schemas on github and Jamf Nation, here are a few I’ve found:
Talkingmoose’s substantial list:
https://github.com/talkingmoose/jamf-manifests
AgileBits 1Password
Apple Safari
Google Chrome and Keystone – although this is already built it as described above
Jamf Products
Microsoft Defender, Edge, OneDrive, Outlook
SAP
https://github.com/Jamf-Custom-Profile-Schemas/JSON-Schema-for-Jamf-Pro-Applications-and-Settings-MDM-Payload
Safari
NoMAD
Zoom
macOS Notifications
https://github.com/bpstuder/jamf_custom_schema
BBedit
Transmit
https://github.com/chrisgrande/jamf-profile-schemas
Managed Installs
https://github.com/joshua-d-miller/JAMF-JSON-Schema
MS Edge
https://blogs.windows.com/msedgedev/2020/02/20/edge-profiles-jamf-applications-custom-settings/
Cant find the schema you want?
I’ve not tried this but there is an app to help create the JSON schema, give it a go and if it works out publish it for other on github.
Schema Builder
https://github.com/BIG-RAT/Managed-App-Schema-Builder