Skip to main content

Official BugStack SDK for Python — capture, report, and auto-fix production errors.

Project description

bugstack-python

Official Python SDK for BugStack — capture, report, and auto-fix production errors.

PyPI Python License: MIT

Installation

pip install bugstack

Quick Start

import bugstack

bugstack.init(api_key="bs_live_...")

try:
    risky_operation()
except Exception as e:
    bugstack.capture_exception(e)

Framework Integrations

FastAPI

from fastapi import FastAPI
from bugstack.integrations.fastapi import FastAPIMiddleware

app = FastAPI()
app.add_middleware(FastAPIMiddleware)

bugstack.init(api_key="bs_live_...")

Django

# settings.py
MIDDLEWARE = [
    'bugstack.integrations.django.BugStackMiddleware',
    # ... other middleware
]

BUGSTACK_API_KEY = "bs_live_..."
BUGSTACK_AUTO_FIX = True  # optional

Flask

from flask import Flask
from bugstack.integrations.flask import init_app

app = Flask(__name__)
bugstack.init(api_key="bs_live_...")
init_app(app)

Generic (sys.excepthook)

from bugstack.integrations.generic import install_hooks

bugstack.init(api_key="bs_live_...")
install_hooks()

Configuration

bugstack.init(
    api_key="bs_live_...",          # Required
    environment="production",       # Default: "production"
    auto_fix=True,                  # Enable AI-powered auto-fix
    debug=False,                    # Log SDK activity
    dry_run=False,                  # Log without sending
    enabled=True,                   # Kill switch
    deduplication_window=300,       # Seconds (default: 5 min)
    timeout=5.0,                    # HTTP timeout in seconds
    max_retries=3,                  # Retry attempts
    ignored_errors=[                # Errors to skip
        KeyboardInterrupt,
        "expected error message",
    ],
    before_send=my_hook,            # Inspect/modify/drop events
    redact_fields=["password"],     # Fields to redact
)

Data Transparency

before_send Hook

Inspect, modify, or drop any event before it leaves your application:

def before_send(event):
    # Drop health check errors
    if "health" in event.request.route:
        return None

    # Redact sensitive data
    event.metadata.pop("secret", None)

    return event

bugstack.init(api_key="bs_live_...", before_send=before_send)

ignored_errors

Skip specific error types or messages:

bugstack.init(
    api_key="bs_live_...",
    ignored_errors=[
        KeyboardInterrupt,          # By type
        SystemExit,                 # By type
        "Connection reset",         # By exact message
    ],
)

dry_run Mode

See exactly what would be sent without making any network requests:

bugstack.init(api_key="bs_live_...", dry_run=True)
# Prints: [BugStack DryRun] Would send: { ... }

What Gets Sent

Every error event contains exactly this — nothing more:

{
  "apiKey": "bs_live_...",
  "error": {
    "message": "division by zero",
    "stackTrace": "Traceback (most recent call last)...",
    "file": "app/api/handler.py",
    "function": "process_request",
    "fingerprint": "a1b2c3d4e5f6g7h8"
  },
  "environment": {
    "language": "python",
    "languageVersion": "3.12.1",
    "framework": "fastapi",
    "frameworkVersion": "0.109.0",
    "os": "linux",
    "sdkVersion": "1.0.0"
  },
  "timestamp": "2026-01-15T08:30:00+00:00"
}

No cookies. No IP addresses. No user data. No request bodies (unless you explicitly include them).

License

MIT — see LICENSE.

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

bugstack-1.1.0.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

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

bugstack-1.1.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file bugstack-1.1.0.tar.gz.

File metadata

  • Download URL: bugstack-1.1.0.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for bugstack-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d601904c79d459b8dd05d812292f32a1802c7b8b819a742a4eb8b6c41768fee6
MD5 f3e903f9505be915ecfccc3a4a7bb310
BLAKE2b-256 b3a2ade9a0c2c54538d48fbc688a86eda9cb8a3083c6a6900f27f856f7a0bcaf

See more details on using hashes here.

File details

Details for the file bugstack-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: bugstack-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for bugstack-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a9c6153f6d399a17bed6602888db15e3562bf90f6d5f770510d4a51b036905b
MD5 34299da4377be5795ab64ee11b2ad756
BLAKE2b-256 105853c51864a081dc88c1720df0bf26ee591b4aac4221f35b928c1a40924fb2

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