Blog

Two new CKAN extensions - Webhooks and Geopusher

  • Steven De Costa
  • 20 Apr 2021
Denis Zgonjanin recently shared the following update on two new extensions via the CKAN Dev mail list. If you are working on CKAN extensions and would like to share details with other developers then post your updates via the mail list. We'll always look at promoting the great work of community contributions via this blog :) If you have an interesting CKAN story to share feel free to ping @starl3n to organise a guest post. From Denis: ### Webhooks * https://github.com/datacats/ckanext-webhooks * [http://extensions./extension/webhooks/](http://extensions.ckan.org/extension/webhooks/) A problem I've had personally is having my open data apps know when a dataset they've been using has been updated. You can of course poll CKANperiodically, but then you need cron jobs or a queue, and when you're using a cheap PaaS like heroku for your apps, integrating queues and cron is just an extra hassle. This extension lets people register a URL with CKAN, which CKAN will call when a certain event happens - for example, a dataset update. The extension uses the built-in CKAN celery queue, so as to be non-blocking. If you do end up using it, there are still a bunch of nice features to be built, including a simple web interface through which users can register webhooks (right now they can only be created through the action API) ### Geopusher * https://github.com/datacats/ckanext-geopusher So you know how you have a lot of Shapefiles and KML files in your CKANs (because government), but your users prefer GeoJSON? This extension will automatically convert shapefiles and KML into GeoJSON, and create a new GeoJSON resource within that dataset. There are some cases where this won't work depending on complexity of SHP or KML file, but it works well in general. This extension also uses the built-in celery queue to do its work, so for both of these extensions you will need to start the celery daemon in order to use them: `paster --plugin=ckan celeryd -c development.ini`