Skip to content

Releases: CodeMeAPixel/cfxstat.us

Incident Tracking and Notifications (RSS and Discord)

15 Feb 00:33

Choose a tag to compare

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.rss endpoint 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-After header
  • 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.us back to CodeMeAPixel/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

14 Feb 18:53

Choose a tag to compare

Added

  • ServiceEndpoint now supports an optional validateResponse(status, body) callback for endpoints that return non-standard status codes
  • Lambda endpoint uses a custom validator that checks for a valid version field 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-After header 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=30 to max-age=120, s-maxage=300
  • Domain: Updated from status.fixfx.wiki to cfxstat.us
  • *Repository: Moved from CodeMeAPixel/fixfx-status to FixFXOSS/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