Rolebase Developers
API Reference

role

Defines the purpose, domain, accountabilities, and other aspects of a position or function within an organization. Each circle is associated with a role.

Fields

Field Type Description
id uuid Unique identifier for the role
orgId uuid Reference to the organization
name String Name of the role
purpose String The role's purpose or mission
domain String Areas of authority and control
accountabilities String List of accountabilities
checklist String Checklist of recurring responsibilities
indicators String Performance indicators to track
notes String Additional notes
archived Boolean Whether the role is archived (default: false)
base Boolean Whether this is a base role (default: false)
singleMember Boolean Whether the role can only have one member (default: false)
parentLink Boolean Whether the role can be linked to parent circles (default: false)
colorHue Smallint Color hue for visual representation (optional)

Relationships

Object Relationships:

  • org — The organization this role belongs to

Array Relationships:

  • circles — Circles that use this role

Query Examples

List Roles in an Organization

query GetRoles($orgId: uuid!) {
  role(where: { orgId: { _eq: $orgId } }) {
    id
    name
  }
}

Get a Specific Role with Full Details

query GetRole($id: uuid!) {
  role_by_pk(id: $id) {
    id
    name
    purpose
    domain
    accountabilities
    checklist
    indicators
    notes
  }
}

Mutation Examples

Create a Role

mutation CreateRole {
  insert_role_one(
    object: {
      orgId: "your-org-id"
      name: "Software Engineer"
      purpose: "Develop and maintain software applications"
      domain: "Application codebase and development tools"
      accountabilities: "Write clean code, Review PRs, Debug issues"
      checklist: "Daily code review, Weekly status updates"
      indicators: "Code quality metrics, Bug resolution time"
      notes: "Focus on maintainable and scalable code"
      singleMember: false
    }
  ) {
    id
    name
    purpose
  }
}

Update a Role

mutation UpdateRole {
  update_role_by_pk(
    pk_columns: { id: "role-id" }
    _set: {
      name: "Senior Software Engineer"
      accountabilities: "Lead development, Mentor team members, Architect solutions"
    }
  ) {
    id
    name
    accountabilities
  }
}

Permissions

  • View — All organization members can view roles
  • Create — Owners can create any role. Admins and Members can create non-base roles
  • Update — Owners can update any role. For non-base roles: if the organization has protectGovernance disabled, Admins and Members can update them. Circle leaders can also update roles within their circles
  • Delete — Only available through the Hasura admin API
Info Circle Notes

Base roles (base: true) are fundamental to the organization and can only be modified by owners. The singleMember flag restricts assignment to one person. The combination of purpose, domain, and accountabilities defines the complete scope of the role.