Skip to main content

Lightweight webhook monitoring SDK for Python

Project description

outworx-hooks

Lightweight webhook monitoring SDK for Python -- know exactly when your webhooks break.

Works with FastAPI, Flask, and Django. Monitor everything from your dashboard at hooks.outworx.io.

Installation

pip install outworx-hooks

Quick Start

1. Initialize

Add your API key once at app startup, or set the OUTWORX_HOOKS_API_KEY environment variable.

import outworx_hooks

outworx_hooks.init(api_key="your-api-key")

Or via environment variable:

OUTWORX_HOOKS_API_KEY=your-api-key

2. Wrap Your Webhook Handler

FastAPI

from fastapi import FastAPI
from outworx_hooks.integrations.fastapi import OutworxHooksMiddleware
from outworx_hooks import TrackOptions

app = FastAPI()

app.add_middleware(
    OutworxHooksMiddleware,
    options=TrackOptions(provider="stripe", event_type_field="type")
)

@app.post("/webhooks/stripe")
async def handle_webhook():
    # ... process webhook
    return {"status": "ok"}

Flask

from flask import Flask
from outworx_hooks.integrations.flask import with_webhook_monitoring
from outworx_hooks import TrackOptions

app = Flask(__name__)

@app.route("/webhooks/stripe", methods=["POST"])
@with_webhook_monitoring(TrackOptions(provider="stripe", event_type_field="type"))
def handle_webhook():
    # ... process webhook
    return {"status": "ok"}

Django

Add the middleware to your MIDDLEWARE setting:

# settings.py
MIDDLEWARE = [
    ...
    'outworx_hooks.integrations.django.OutworxHooksMiddleware',
]

OUTWORX_HOOKS_OPTIONS = {
    'provider': 'stripe',
    'event_type_field': 'type',
    'capture_body': True
}

Configuration

import outworx_hooks

outworx_hooks.init(
    api_key="your-api-key",
    endpoint="https://hooks.outworx.io/api/ingest", # default
    debug=True, # log events to console
    timeout=3000, # HTTP timeout in ms
    on_error=lambda err: print(err), # error callback
)

Track Options

Each adapter accepts TrackOptions:

Option Type Default Description
provider str -- Webhook provider name (e.g., "stripe", "shopify")
event_type_header str -- Header name to extract event type from
event_type_field str -- Body field to extract event type from (e.g., "type")
capture_body bool False Capture response body (disabled by default)
capture_headers bool True Capture request headers (sensitive ones redacted)
metadata dict -- Custom metadata attached to every event

Dashboard

View your webhook activity at hooks.outworx.io.

License

MIT

Project details


Download files

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

Source Distribution

outworx_hooks-0.1.1.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

outworx_hooks-0.1.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file outworx_hooks-0.1.1.tar.gz.

File metadata

  • Download URL: outworx_hooks-0.1.1.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for outworx_hooks-0.1.1.tar.gz
Algorithm Hash digest
SHA256 79177730966dd8d27c66ae640ebd9501a600be67b6913edc70c282f7f10ed703
MD5 2a395b7b7817833caa1b5eca894ca661
BLAKE2b-256 f329c00e16e372e7ef8098929046deada57c0fbae7a5905e69b4a794a861ec63

See more details on using hashes here.

File details

Details for the file outworx_hooks-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: outworx_hooks-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for outworx_hooks-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0291b443a1412bd99b75deb2a7c6015af9f494abf436c502e4b67e33c6808df4
MD5 66d39227233363795f0e25aafa767cb4
BLAKE2b-256 6fd2e36af9a8ed115a57e09023f3b3b9f8015b71b3dcb82c5f542ec946cc67a6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page