Skip to content

RBAC & Permissions

Role Label Can trade Can admin Panel access
trader Trader Yes No Style-dependent (see Trading Styles)
desk-head Desk Head No No Read-only cross-desk oversight
risk-manager Risk Manager No No Read-only all desks + session replay
admin Administrator No Yes Everything except order-ticket
compliance Compliance No No Read-only + session replay
sales Sales No No Sales workbench, market data
oncall Oncall Engineer No No Observability + service health panels
external-client External Client No No Client RFQ only
viewer Viewer No No Market data + analytics read-only

Every panel has a PANEL_PERMISSIONS entry defining which roles can access it, and an optional PANEL_TRADING_STYLES entry further restricting trader access by style.

The canAccessPanel(panelId, role, tradingStyle) function is the single source of truth, used by:

  • ComponentPicker: filters the "Add Panel" dropdown
  • DashboardLayout factory: renders "no permission" message for unauthorised panels in saved layouts
  1. Frontend ComponentPicker: panel not shown if role/style does not match
  2. Frontend DashboardLayout factory: unauthorised panel renders denial message
  3. Frontend Order Ticket role-check: blocks order submission with per-role/per-style messages
  4. Backend OMS: rejects orders from non-trader roles
  5. Backend OMS: rejects orders failing risk-engine checks