HTTP (Express)
Method Path Auth Purpose Notes GET /healthNone Operational health + device status Returns JSON status, protocol info, memory usage GET /*None Static UI assets Served from public/ directory
/health Response Shape (from server/server.js)
status: healthy if any device connected; otherwise degraded.
uptime: process.uptime().
timestamp: Date.now().
version: package.json version.
devices: { total, connected, list[] } (id, name, type, connected, state).
protocols: websocket, emberPlus, tslUmd status.
memory: heap usage in MB.
WebSocket
Endpoint: ws://<host>:<webSocketPort> (default 3050, from config).
Auth: None.
Origin checks: None.
Server → Client Messages
Type Payload Description playoutStates{ type, timestamp, data, protocols }Broadcast device states and protocol status
data includes DeviceState objects:
{ id, name, type, ip, port, state, timecode, filename, framerate, updated, connected }.
Client → Server Messages
Type Payload Behaviour getConfignone Returns { type: 'config', data: { settings, servers } } updateSettings(future) Logs request only, no effect
Protocol Interfaces (Non-HTTP)
Direction Protocol Port Purpose Incoming CasparCG OSC (UDP) 6250 (default) Receive playout state via OSC bundles Incoming Ember+ (TCP) 9000 (default) Expose device states to control systems Outgoing HyperDeck (TCP) 9993 (default) Poll/subscribe to HyperDeck status Outgoing vMix (HTTP) 8088 (default) Poll /api for state Outgoing TSL UMD (UDP) 4003 (default dest) Send tally state to displays
Attestation
timestamp : 2026-01-31T13:12:58Z
git_ref : e4bb0098264f90d3afc7b5d0f3b5e425d1825761
working_directory : /Users/david/Documents/GitHub/superdash
confidence_notes : " Endpoints extracted from server/server.js and configuration defaults. "
# Inputs consumed (with integrity hashes)
hash : sha256:4d09f4acde1032a407f67943d0cd93be1fe10b79a9c07aa3b430cf6dd27b31bb
- path : config.example.json
hash : sha256:84d7cd97ca20377c204fa04038ff90b5bc08eb1855cdee0ded54f061677cb49a
hash : sha256:ec3b968fd89aa8d66a27b8d4f53980e27b2fc28bfe479f8d726b1c5b162216e0
cmd : " rg -n \" app \\ .(get|post|put|delete|use) \" server "
purpose : " Locate HTTP routes and middleware "
output_summary : " Found static middleware and /health "
cmd : " sed -n '240,480p' server/server.js "
purpose : " Inspect /health endpoint and WebSocket setup "
output_summary : " Captured health response and WS broadcast "
cmd : " sed -n '480,720p' server/server.js "
purpose : " Inspect startup and protocol initialization "
output_summary : " Confirmed Ember+ and TSL UMD bindings "
purpose : " Confirm configured ports and destinations "
output_summary : " webSocketPort=3050, emberPlusPort=9000, tslUmdDestinations configured "
HTTP exposes only /health plus static assets. WebSocket broadcasts playoutStates and accepts getConfig/updateSettings (no auth). Protocol surfaces include Ember+ TCP 9000 and OSC UDP 6250.