Configuration
All runtime configuration is supplied via environment variables. Triage policies are JSON files that control per-service approval gates and severity routing.
Environment variables
Copy the template below and fill in your values. The variables marked with a * are required for live ingestion. The replay CLI works without any of them.
| 1 | # Sentry webhook secret (from Project Settings → Client Keys) |
| 2 | SENTRY_WEBHOOK_SECRET= |
| 3 | |
| 4 | # GitHub App (Recommended — automatic installation token rotation) |
| 5 | GITHUB_APP_ID= |
| 6 | GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY----- |
| 7 | ... |
| 8 | -----END RSA PRIVATE KEY-----" |
| 9 | # or GITHUB_APP_PRIVATE_KEY_PATH=/etc/secrets/github_app.pem |
| 10 | # or GITHUB_APP_PRIVATE_KEY_BASE64= |
| 11 | |
| 12 | # Fallback: GitHub fine-grained PAT (see /docs/github-token) |
| 13 | GITHUB_TOKEN= |
| 14 | |
| 15 | # GitHub target repository (org/repo or user/repo) |
| 16 | GITHUB_REPO= |
| 17 | |
| 18 | # LLM provider endpoint + key |
| 19 | LLM_PROVIDER=openai # openai | anthropic | google | groq |
| 20 | LLM_MODEL=gpt-4o-mini |
| 21 | LLM_API_KEY= |
| 22 | |
| 23 | # Slack incoming webhook URL (optional — omit to disable Slack alerts) |
| 24 | SLACK_WEBHOOK_URL= |
| 25 | |
| 26 | # Severity thresholds (deterministic arithmetic — no AI involved) |
| 27 | SEVERITY_P1_USERS=50 # affected users ≥ N → P1 |
| 28 | SEVERITY_P1_EVENTS=500 # events ≥ N → P1 |
| 29 | SEVERITY_P2_USERS=10 |
| 30 | SEVERITY_P2_EVENTS=100 |
.env file. The .gitignore in the repository already excludes it.Severity thresholds
Severity (P1 / P2 / P3) is computed by fixed arithmetic from the affected user count and raw event count in the Sentry payload. The LLM plays no part in severity determination.
| Severity | Affected users | Event count |
|---|---|---|
| P1 | ≥ 50 (default) | ≥ 500 (default) |
| P2 | ≥ 10 (default) | ≥ 100 (default) |
| P3 | below P2 thresholds | below P2 thresholds |
Override thresholds via SEVERITY_P1_USERS, SEVERITY_P1_EVENTS, etc. in your environment.
Triage policies
Policy JSON files in policies/ let you configure per-service approval gates and Slack routing.
| 1 | # Example triage policy (JSON stored in backend/policies/) |
| 2 | { |
| 3 | "name": "checkout-service", |
| 4 | "auto_approve_domains": ["payments", "checkout"], |
| 5 | "gate1_require_human": true, |
| 6 | "max_diff_bytes": 6144, |
| 7 | "notify_slack": true |
| 8 | } |
LLM providers
Set LLM_PROVIDER to one of: openai, anthropic, google, or groq. Token costs vary by provider; use the cost estimator on the Pricing page to project monthly spend.