Posted on 08-02-2016 09:47 AM
Hey everyone!
We just dropped v9.93 of the Casper Suite today and there’s a powerful new feature being included to enable our power users to build deeper integrations with the product: webhooks.
For a while now the JSS has had the Events API: a Java based API for building plugins that could be installed on the server. The Events API allowed developers to write automations that were triggered by real time events in the JSS. While powerful, the Events API has had a high barrier to entry due to being Java based and requiring access to the JSS server to install the jar file (JAMF Cloud customers would have a hard time with this).
Webhooks in v9.93 are built on top of the Events API. Like other modern web apps, the JSS webhooks translate events from the Events API into outbound HTTP requests to a URL of your choosing in either JSON or XML format.
If you’ve used the JSS REST API before then you are already familiar with using HTTP POST requests and working with XML. Many of us are also very fluent in parsing and manipulating JSON. Webhooks takes an advanced feature of the JSS and translates it into a format we all know how to work with and allows you to use whatever programming language you’re most comfortable with!
If you’re looking to get started, you can find reference documentation on all of the available webhooks here along with some supporting articles: https://unofficial-jss-api-docs.atlassian.net/wiki/display/JRA/Webhooks+API
A number of examples for integration ideas can be found here on GitHub: https://github.com/brysontyrrell/Example-JSS-Webhooks
This collection will grow over time and include some ideas from the community. Use these as references and starting points, but always test Test TEST before you use anything in a production environment. Also, if you want to suggest changes or add other examples to the repo send a pull request!
If you’re planning on building new tools, plugins or integrations with the Webhooks feature, please share that here!
Posted on 08-02-2016 02:31 PM
@brysontyrrell I am excited to get started with Webhooks! This will be a great start. Thank you for sharing!
Posted on 08-02-2016 02:32 PM
Awesome!
Posted on 08-03-2016 06:32 AM
I updated the README with some more information and added an example for sending an email on mobile device enroll and un-enroll events:
Posted on 08-03-2016 03:54 PM
This is great! Thanks so much
Posted on 08-04-2016 10:06 AM
@ChrisL contributed a great Ruby example for sending RestAPIOperation events into Slack:
https://github.com/brysontyrrell/Example-JSS-Webhooks
https://github.com/brysontyrrell/Example-JSS-Webhooks/tree/master/Slack-REST-API-Change-Notification
Posted on 09-09-2016 01:23 PM
@bofh made the second contribution to the examples repo with PHP Webhook Processing:
https://github.com/brysontyrrell/Example-JSS-Webhooks#php-webhook-processing
https://github.com/brysontyrrell/Example-JSS-Webhooks/tree/master/PHP-Webhook-Processing
Also, @ChrisL has updated his ruby-jss library with a new webhooks framework and posted about it here:
https://jamfnation.jamfsoftware.com/discussion.html?id=21127
Posted on 02-24-2017 06:09 PM
Here's another "practical use" example with JAMF Webhooks.
As presented during macad.uk 2017 conference: connect Jamf Pro with Webhooks
We use this heavily for event logging outside of JSS into elastic stack (formerly known as ELK).
Functionality will be part of Zentral open source upcoming release (scheduled end of feb 2017): https://github.com/zentralopensource/zentral