HTTP endpoints
NodalMerge is WebSocket-first. The HTTP surface innodalmerge-server is intentionally small today.
Public server routes (current)
GET /ws/:room_id
Purpose:
- WebSocket upgrade endpoint for room sessions
- First inbound frame must be a valid
hellopayload - Room-level auth/token checks are applied during handshake if room is locked
- All sync/control-plane behavior runs over this upgraded socket
- Method/path:
GET /ws/:room_id - Auth: handshake token/capability validation when room is locked
- Upgrade: HTTP 101 on success, then WS protocol
- Primary docs:
api-reference/websocket-commands
GET /metrics
Purpose:
- Prometheus scrape endpoint for runtime metrics
- Enabled when server starts with
--metrics-addr <ip:port> - Exposed on the metrics listener address, path
/metrics
- Method/path:
GET /metrics - Auth: deployment-controlled (typically protected at network/proxy layer)
- Response: Prometheus text exposition
- Primary docs:
operators/metrics-and-observability
Endpoint coverage status
Current runtime coverage is complete for server-exposed routes inserver/src/main.rs:
GET /ws/:room_idGET /metrics(when metrics listener is enabled)
Route philosophy
Current product posture:- Runtime API surface is primarily WebSocket (
/ws/:room_id) - HTTP is used for operational concerns (metrics) and possible future management APIs
- public product contract
- operator/internal contract
Planned additions (not guaranteed)
- Health/readiness endpoint
- Management endpoint layer for control-plane workflows
- Archive import/export HTTP helpers for non-WS tooling
Verification checklist
- Confirm server log reports
ws://<addr>/ws/<room> - Verify successful WebSocket upgrade on
/ws/:room_id - If metrics enabled, verify scrape on
http://<metrics_addr>/metrics - Confirm route exposure and auth expectations behind proxy/TLS