Skip to content

[Feature] Role-based UI modes: Research Administrator and Developer #506

Description

@josibartholomew

Problem

Research Administrators (RAs) use Vandalizer to run pre-built workflows against their documents and review results — that's it. But right now they land in the same interface as Developers, with full access to workflow design tools, automation, Office 365 integration, knowledge bases, credentials, and more. This creates unnecessary noise and confusion for users who never need those features. Meanwhile, there's no clear separation between "people who build workflows" and "people who run them."

Proposed Solution

Add a app_role field to the User model ("research_admin" or null for developer) assignable by admins via the Users panel. This drives a frontend mode system with two experiences:

RA Mode — locked to users with app_role = "research_admin":

  • Navigation limited to Documents, Chat, and Workflows
  • Workflows are run-only; no create button, no design/edit controls
  • Opening a workflow shows only the workflow name, an output/results area, and the run input + RUN button
  • Navigating directly to a restricted route redirects to /

Developer Mode — full platform access, unchanged from current behavior. Developers can also toggle into a preview of RA Mode via a pill toggle in the header, so they can see what their RAs will experience.

Alternatives Considered

  • Separate user accounts or teams — too heavy; RAs and Developers often work in the same team on the same documents.
  • Backend API gating by role — more robust but significantly more work. This iteration is UI-only, which is sufficient since RAs are internal trusted users. Backend enforcement can be layered on later if needed.
  • Hiding features via team permissions — the existing owner/admin/member roles are about team management, not platform surface area. Overloading them for this purpose would make permission logic harder to reason about.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions