BetaFree-to-use OpAMP fleet management for Windows & LinuxQuick Start →

Users & Custom Roles (RBAC)

CollectorCtrl incorporates an enterprise-grade Role-Based Access Control (RBAC) model. Every administrative operation -- from viewing live telemetry to publishing configuration policies, executing remote restarts, or approving AI actions -- is authorized against fine-grained capability sets.


1. User Account Administration

Manage user accounts under Settings -> User Management:

User Management Panel Expand

User Types & Authentication Modes

  • Local Accounts: Managed directly within the CollectorCtrl database (users table). Passwords are encrypted on the server using Bcrypt hashing. Local accounts support forced password resets, account locking, and emergency break-glass access.
  • SSO Federated Accounts (OIDC): Provisioned on-demand when users authenticate via enterprise Identity Providers (Azure AD / Entra ID, Okta, Keycloak). Federated accounts do not possess local passwords; authentication and group claims are delegated to the IdP.

2. Standard Built-in System Roles

CollectorCtrl ships with three pre-configured system roles:

System RoleOperational ScopeDefault Capabilities
AdminSystem AdministratorUnrestricted system-wide access. Can manage SSO providers, create API tokens, define custom RBAC roles, manage databases, and bypass approval workflows (when explicitly configured).
EditorInfrastructure OperatorFull day-to-day fleet management. Can author configuration templates, execute canary rollouts, build custom OCB collectors, upload packages, manage semantic mappings, and restart edge daemons. Blocked from system-level settings, audit export, and user provisioning.
ViewerRead-Only Auditor / DeveloperRead-only inspection across fleet inventory, configuration YAML trees, telemetry samples, and audit events. Blocked from executing any mutating commands or updating policies.

3. Custom Roles & Capability Reference

For organizations requiring segregation of duties, CollectorCtrl supports Custom Roles:

Custom Roles Definition Expand

Permission Domains Reference

Custom roles map specific feature domains to discrete actions:

Feature DomainAvailable ActionsOperational Scope
fleetview, configure, controlView agent inventory; author/push YAML configurations; execute remote restarts and log captures.
policiesview, configure, controlInspect, publish, and rollback fleet-wide GitOps configuration policies.
governorview, configure, controlInspect telemetry volume & cardinality; toggle live agent tapping; configure S3 destinations; run What-If simulations.
zerotouchview, configureInspect auto-discovered application runtimes; configure non-invasive APM auto-injection baselines.
supervisorsview, configure, controlManage edge Supervisor daemons, sidecar port allocations, and remote service upgrades.
builderview, create, downloadAccess the OpenTelemetry Custom Collector Builder (OCB); compile bespoke collector binaries.
packagesview, uploadManage binary packages; upload release manifests; trigger fleet binary rollouts.
registryview, update, generateCentralized OTel Semantic Conventions mapping; import/export vendor translation tables.
discoveryanalyze, tagService discovery inventory and structural YAML template discovery.
mcpview, approve, auto-approveInspect Model Context Protocol tools; approve pending AI actions (Two-Person Rule); grant unattended auto-approval.
systemview, git, env_rules, smtp, webhooks, databaseManage GitOps providers, fleet classification rules, mail relays, alert channels, and database snapshots.
auditviewQuery compliance audit trails and export activity logs.
usersview, manageProvision local accounts and assign roles.

4. Custom Role JSON Schema

Custom roles are stored in the custom_roles database table with fine-grained permissions encoded as JSON:

{
  "name": "SecOps Auditor",
  "description": "Read-only access to audit trails, SIEM streaming, and package manifests",
  "permissions": {
    "fleet": ["view"],
    "audit": ["view"],
    "packages": ["view"],
    "governor": ["view"],
    "system": ["view"]
  }
}