ObjectStackObjectStack

Role

Role protocol schemas

Role Schema (aka Business Unit / Org Unit)

Defines the organizational hierarchy (Reporting Structure).

COMPARISON:

  • Salesforce: "Role" (Hierarchy for visibility rollup)

  • Microsoft: "Business Unit" (Structural container for data)

  • Kubernetes/AWS: "Role" usually refers to Permissions (we use PermissionSet for that)

ROLES IN OBJECTSTACK:

Used primarily for "Reporting Structure" - Managers see subordinates' data.

NAMING CONVENTION:

Role names MUST be lowercase snake_case to prevent security issues.

@example Good role names

  • 'sales_manager'

  • 'ceo'

  • 'region_east_vp'

  • 'engineering_lead'

@example Bad role names (will be rejected)

  • 'SalesManager' (camelCase)

  • 'CEO' (uppercase)

  • 'Region East VP' (spaces and uppercase)

Source: packages/spec/src/identity/role.zod.ts

TypeScript Usage

import { Role } from '@objectstack/spec/identity';
import type { Role } from '@objectstack/spec/identity';

// Validate data
const result = Role.parse(data);

Role

Properties

PropertyTypeRequiredDescription
namestringUnique role name (lowercase snake_case)
labelstringDisplay label (e.g. VP of Sales)
parentstringoptionalParent Role ID (Reports To)
descriptionstringoptional

On this page