Principals & Roles

Every action is performed by an identified principal. Roles provide default permission sets.

Principal Types

PrincipalIdBadgeUse Case
LocalUser(String)LocalDesktop operator
RemoteUserRemoteWebSocket client with session
LlmAgentLLMClaude-powered AI agent
ControlAgent(String)AgentAutonomous control agent (HVAC, Aviation)
SdkClientSDKExternal data source via QUIC
SystemSystemInternal system operations

Roles

RoleLevelDefault Permissions
Admin3All permissions (42/42)
Operator2Full ControlBus, all LLM tools, reports, config load, network
Viewer1View-only: state, audit, policies, agents, metrics, reports
LlmAgentQuery state, manage panes, fly camera, workspace (no commands)
ControlAgentIssue commands, view state, view agents only
SdkClientIngestConnect only
Custom(String)Empty — all permissions via explicit grant

Resolution Priority

User overrides > Group overrides > Group role defaults > User role defaults. Higher-hierarchy roles cannot be overridden by group membership.

Questions?

Reach out for help with integration, deployment, or custom domain codecs.