Skip to main content

Webhook creator and deployer

Project description

= AnyWebHook

AnyWebhook (*awh*) is Python/WSGI webhook listener and handler. It simplifies
writing and acting upon incoming webhooks.

Awh splits webhook handling into _validating_ and _executing_. You must register
both validator and executor to handle webhooks. These are simple functions which
accept a request parameter containing incoming request data. Additionaly they
receive a dictionary which is filled with arbitrary data by response manipulator
(a function decorated with `` decorator). Many validators and executors
(for many different webhooks) can be registered. Any validator returning `True`
marks webhook as correct.

You can also affect application's response by registering a separate function
accepting incoming request and to-be-modified response parameter.

Simple application would look like this:

import json
import subprocess

from awh import Awh
from awh.operate import require, jsonpath

app = Awh()

def valid(request, data_dict):
payload = request.get_data(as_text=True)
j = json.loads(payload)

# validate incoming json somehow
require(jsonpath(j, 'password')[0].value == 'secretpass')
require(data_dict.get('foo') == 'bar')
return True

def execute(request, data_dict):'deploy-app')
def myapp(request, response, data_dict):
response.status_code = 404
data_dict['foo'] == 'bar'

For additional examples, see link:tests/apps[tests/apps].

== Deployment

In <<example-app>>, `app` is a WSGI application, which implements its interface
(i.e. a function accepting `environ` and `start_response` parameters). You
should point it to your WSGI server.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for awh, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size awh-0.2.1.tar.gz (12.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page