Releases: CodeMeAPixel/cfxstat.us
Releases · CodeMeAPixel/cfxstat.us
Incident Tracking and Notifications (RSS and Discord)
Added
- Incident Tracking System — Automatically detects service status changes and maintains incident history with auto-resolution when services return to operational status
- Incident History UI — Tabbed interface showing recent incidents with timeline, impact level, and resolution status
- RSS Feed —
/api/status.rssendpoint for subscribing to incident updates in RSS readers - RSS Autodiscovery — Auto-detection link in HTML head for browsers and RSS readers (
rel="alternate" type="application/rss+xml") - Discord Webhooks — Register Discord webhooks to receive instant notifications when incidents occur
- Webhook Management UI — Add, test, and manage Discord webhooks in the Subscribe tab with success/failure status tracking
- Rate Limiting — Per-webhook rate limits (5 tests/hour, 2/minute) with exponential backoff to prevent Discord API abuse
- Intelligent Retry Logic — Automatic retries with exponential backoff for transient network failures; respects Discord's
Retry-Afterheader - Subscribe Tab — Consolidated subscription options (RSS, Email coming soon, Discord webhooks) with user-friendly UI
- KV Storage Integration — Cloudflare KV namespaces for persistent storage of incidents and webhooks across deployments
- Webhook Validation & Testing — Discord webhook URL format validation with test endpoint to verify connectivity before relying on webhooks
Changed
- Repository — Migrated from
FixFXOSS/cfxstat.usback toCodeMeAPixel/cfxstat.us - Branding — Updated all documentation and references to reflect CodeMeAPixel ownership
- Header Navigation — Moved GitHub source link from footer to header for better visibility
- Documentation — Simplified and cleaned up README, CONTRIBUTING, DEPLOYMENT, SECURITY, and CODE_OF_CONDUCT files; removed unnecessary complexity
- Category Cards — Changed from open-by-default to closed-by-default for cleaner initial page state
- Status Page Layout — Reorganized with tabbed interface (Overview, Incidents, Subscribe) for better information hierarchy
- Storage Backend — Migrated from in-memory stores to Cloudflare KV for persistent incident and webhook data; maintains fallback to in-memory for development
- Webhook Error Handling — Improved error messages showing Discord API responses and retry timing for rate-limited requests
Rate-Limits and Lambda Updates
Added
ServiceEndpointnow supports an optionalvalidateResponse(status, body)callback for endpoints that return non-standard status codes- Lambda endpoint uses a custom validator that checks for a valid
versionfield in the JSON body, correctly reporting operational even when it returns HTTP 503 - Exponential backoff (1s, 2s) with up to 2 retries on transient failures (5xx, timeouts, network errors)
- Respects
Retry-Afterheader on rate-limited responses, waits up to 30s before retrying - Max 4 requests in flight at once to avoid hammering Cfx.re endpoints
- Shows a spinner on first load instead of a blank page while services are checked
Changed
- Removed SSR loader that blocked page render while checking all 22 endpoints; status is now fetched client-side on mount for instant page load
- Auto-Refresh Interval: Bumped from 60 seconds to 5 minutes
- Request Timeout: Increased from 8 seconds to 15 seconds per endpoint
- API Cache Headers: Changed from
max-age=30, s-maxage=30tomax-age=120, s-maxage=300 - Domain: Updated from
status.fixfx.wikitocfxstat.us - *Repository: Moved from
CodeMeAPixel/fixfx-statustoFixFXOSS/cfxstat.us - User-Agent: Updated to
cfxstat.us/1.0 (status-checker)
Fixed
- Lambda endpoint was incorrectly reported as degraded because it returns HTTP 503 with a valid JSON body containing version information