Skip to content

RBAC & Permissions

RoleCan tradeCan adminPanel access
traderYesNoStyle-dependent (see Trading Styles)
desk-headNoNoRead-only cross-desk oversight
risk-managerNoNoRead-only all desks + session replay
adminNoYesEverything except order-ticket
complianceNoNoRead-only + session replay
salesNoNoSales workbench, market data
external-clientNoNoClient RFQ only
viewerNoNoMarket 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 unauthorized panels in saved layouts
  1. Frontend ComponentPicker: panel not shown if role/style doesn’t match
  2. Frontend DashboardLayout factory: unauthorized 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