Role-Based Access Control

Elydora enforces fine-grained access control with five predefined roles. Higher-level roles inherit all permissions from lower levels.

Roles

Level 1org_owner

Full administrative access. Can manage users, roles, and all platform features. Assigned automatically to the account creator.

  • All permissions
  • Manage organization settings
  • Assign and modify user roles
  • Delete organization data
Level 2security_admin

Manages agent lifecycle and security controls. Can freeze and revoke agents.

  • Freeze agents
  • Revoke agent keys
  • View agent details
  • View operations
  • Query audit log
Level 3compliance_auditor

Full read access to audit logs and export capabilities. Designed for compliance and legal teams.

  • Query audit log
  • Create and download exports
  • View operations
  • View agent details
  • View epochs
Level 4readonly_investigator

Read-only access to operations, agents, and epochs. Cannot modify any data or export records.

  • View operations
  • Verify operations
  • View agent details
  • View epochs
Level 5integration_engineer

Can register agents and submit operations. The primary role for agent integration workflows.

  • Register agents
  • Submit operations

Permissions Matrix

The following table shows the minimum role required for each API endpoint. Users with a higher-level role (lower level number) can access all endpoints available to lower-level roles.

EndpointMinimum Role
POST /v1/auth/registerPublic
POST /v1/auth/loginPublic
GET /v1/auth/meAny authenticated
POST /v1/auth/refreshAny authenticated
POST /v1/agents/registerintegration_engineer
GET /v1/agents/:agent_idreadonly_investigator
POST /v1/agents/:agent_id/freezesecurity_admin
POST /v1/agents/:agent_id/revokesecurity_admin
POST /v1/operationsintegration_engineer
GET /v1/operations/:operation_idreadonly_investigator
POST /v1/operations/:operation_id/verifyreadonly_investigator
POST /v1/audit/querycompliance_auditor
GET /v1/epochsreadonly_investigator
GET /v1/epochs/:epoch_idreadonly_investigator
POST /v1/exportscompliance_auditor
GET /v1/exportscompliance_auditor
GET /v1/exports/:export_idcompliance_auditor
GET /v1/exports/:export_id/downloadcompliance_auditor
GET /.well-known/elydora/jwks.jsonPublic

Role Inheritance

Roles follow a hierarchical model. An org_owner (Level 1) can perform all actions that a security_admin (Level 2) can, and so on down the chain. This means: