Channel contract
Channel names are built by helpers inpusher.client.ts — the single source of
truth shared between the publisher and the authorizer.
Private channels (
private- prefix) require a signed authorization token
before a client may subscribe. The totem channel is public on purpose so
touch UIs and NOC dashboards subscribe without a handshake.Event contract
The contract-domain events are enumerated inContractPusherEvent:
Private-channel authorizer
POST /api/v3/realtime/pusher/auth
1
Authorize
Requires the
pusher:auth permission.2
Validate body
socket_id and channel_name are both required (400 otherwise).3
Enforce namespace
The channel must match
^private-(contract|account)-[0-9a-f-]{36}$;
anything else is rejected with 403.4
Sign
Returns the Pusher auth payload from
authorizeChannel(socket_id, channel_name). When Pusher is not configured
the endpoint returns 403.