The Role object defines permission sets that can be assigned to users within organizations. Freddy supports both global base roles (available to all organizations) and organization-specific custom roles.
id string required
Unique role identifier. Format: role_ followed by alphanumeric characters.
name string required
Role name (e.g., Member, Admin, Owner).
description string | null optional
Human-readable description of the role and its purpose.
organization_id string | null optional
Reference to the Organization this role belongs to. null for global base roles available to all organizations.
permissions object | array | null optional
JSON object or array defining the role's permissions. Structure varies by role type.
is_base_role boolean required
Whether this is a global base role (Member, Admin, Owner). Default: false.
is_custom boolean required
Whether this is a custom organization-specific role. Default: false.
Freddy provides three mandatory base roles for every organization:
Basic member with read-only access to organization resources.
Administrator with full access to manage users, data, and organization settings (except billing).
Organization owner with complete control including billing and organization management.
Organizations can create custom roles with tailored permission sets to match their specific needs.