cardinal-wings: the panel backend is feature-complete
Interactive terminal, live stats, webhooks, multi-node metrics, cluster guide and an OpenAPI schema — everything a control panel needs from wings is now in place.
The cardinal-wings backend reached feature-completeness: everything a web
panel needs to manage cardinal — one host or a whole cluster — is now in
place, tested, and released automatically by CI.
What landed in this round
- Interactive terminal — a websocket bridge (
/terminal/ws) plus SSE
endpoints for shell sessions, built dependency-free on the standard
library.
- Live stats —
/stats?stream=1streams CPU/memory snapshots as SSE for
real-time charts.
- Webhooks — panel notifications for
task.completedand container
events, with a shared secret.
- Multi-node metrics —
/v1/metricsnow aggregates every node with
per-node labels, ready for Prometheus.
- Cluster guide — docs/cluster.md walks through wiring wings
as a hub over N cardinal nodes with ?node= routing.
- Operations — unauthenticated
/healthz, graceful degraded mode when
cardinal is missing, configurable rate limits and timeouts, rotating audit
log, and container filesystem endpoints (fs/ls|cat|tree, cp).
Everything in one API
Containers (filter/sort/paginate), images (async pull with progress), the
blueprint catalog (async install/uninstall), services and functions, cluster
health, tasks with persistence, events, metrics, and uniform errors — all
documented in the OpenAPI schema.
Next up is the panel itself — a UI that sits on this API.