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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d601904c79d459b8dd05d812292f32a1802c7b8b819a742a4eb8b6c41768fee6
|
|
| MD5 |
f3e903f9505be915ecfccc3a4a7bb310
|
|
| BLAKE2b-256 |
b3a2ade9a0c2c54538d48fbc688a86eda9cb8a3083c6a6900f27f856f7a0bcaf
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a9c6153f6d399a17bed6602888db15e3562bf90f6d5f770510d4a51b036905b
|
|
| MD5 |
34299da4377be5795ab64ee11b2ad756
|
|
| BLAKE2b-256 |
105853c51864a081dc88c1720df0bf26ee591b4aac4221f35b928c1a40924fb2
|