Files
Charon/docs/plans/archive/sample_orchestration_plan.md
akanealw eec8c28fb3
Some checks failed
Go Benchmark / Performance Regression Check (push) Has been cancelled
Cerberus Integration / Cerberus Security Stack Integration (push) Has been cancelled
Upload Coverage to Codecov / Backend Codecov Upload (push) Has been cancelled
Upload Coverage to Codecov / Frontend Codecov Upload (push) Has been cancelled
CodeQL - Analyze / CodeQL analysis (go) (push) Has been cancelled
CodeQL - Analyze / CodeQL analysis (javascript-typescript) (push) Has been cancelled
CrowdSec Integration / CrowdSec Bouncer Integration (push) Has been cancelled
Docker Build, Publish & Test / build-and-push (push) Has been cancelled
Quality Checks / Auth Route Protection Contract (push) Has been cancelled
Quality Checks / Codecov Trigger/Comment Parity Guard (push) Has been cancelled
Quality Checks / Backend (Go) (push) Has been cancelled
Quality Checks / Frontend (React) (push) Has been cancelled
Rate Limit integration / Rate Limiting Integration (push) Has been cancelled
Security Scan (PR) / Trivy Binary Scan (push) Has been cancelled
Supply Chain Verification (PR) / Verify Supply Chain (push) Has been cancelled
WAF integration / Coraza WAF Integration (push) Has been cancelled
Docker Build, Publish & Test / Security Scan PR Image (push) Has been cancelled
Repo Health Check / Repo health (push) Has been cancelled
History Rewrite Dry-Run / Dry-run preview for history rewrite (push) Has been cancelled
Prune Renovate Branches / prune (push) Has been cancelled
Renovate / renovate (push) Has been cancelled
Nightly Build & Package / sync-development-to-nightly (push) Has been cancelled
Nightly Build & Package / Trigger Nightly Validation Workflows (push) Has been cancelled
Nightly Build & Package / build-and-push-nightly (push) Has been cancelled
Nightly Build & Package / test-nightly-image (push) Has been cancelled
Nightly Build & Package / verify-nightly-supply-chain (push) Has been cancelled
changed perms
2026-04-22 18:19:14 +00:00

1.8 KiB
Executable File

Plan: Aggregated Host Statuses Endpoint + Dashboard Widget

1) Title

Implement /api/v1/host_statuses backend endpoint and the CharonStatusWidget frontend component.

2) Overview

This feature provides an aggregated view of the number of proxy hosts and the number of hosts that are up/down. The backend exposes an endpoint returning aggregated counts, and the frontend consumes the endpoint and presents a dashboard widget.

3) Handoff Contract (Example)

GET /api/v1/stats/host_statuses

Response (200):

{
  "total_proxy_hosts": 12,
  "hosts_up": 10,
  "hosts_down": 2
}

4) Backend Requirements

  • Add a new read-only route GET /api/v1/stats/host_statuses under internal/api/handlers/.
  • Implement the handler to use existing models/services and return the aggregated counts in JSON.
  • Add unit tests under backend/internal/services and the handler's folder.

5) Frontend Requirements

  • Add frontend/src/components/CharonStatusWidget.tsx to render the widget using the endpoint or existing monitors if no endpoint is present.
  • Add a hook and update the API client if necessary: frontend/src/api/stats.ts with getHostStatuses().
  • Add unit tests: vitest for the component and the hook.

6) Acceptance Criteria

  • Backend: go test ./... passes.
  • Frontend: npm run type-check and npm run build pass.
  • All unit tests pass and new coverage for added code is included.

7) Artifacts

  • docs/plans/current_spec.md (the plan file)
  • backend changed files including handler and tests
  • frontend changed files including component and tests