Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Roles

Define and assign organization roles

Use the role client to define organization roles and list role assignments.

Create roles and permissions for authorization after you have organizations and users.

clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asynccreateRole

Creates a new environment-level role with specified permissions.

paramroleCreateRole

Role creation object containing:

returnsCreateRoleResponse

The created role with metadata

const response = await scalekit.role.createRole({
name: 'content_editor',
displayName: 'Content Editor',
description: 'Can create and edit content',
permissions: ['content:read', 'content:write', 'content:edit']
});
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncgetRole

Retrieves complete information for a specific environment role.

paramroleNamestring

Unique role identifier (alphanumeric with underscores, hyphens allowed).

returnsGetRoleResponse

Role details including permissions and inheritance

const response = await scalekit.role.getRole('content_editor');
console.log('Role:', response.role.displayName);
console.log('Permissions:', response.role.permissions);
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asynclistRoles

Lists all environment-level roles available in your Scalekit environment.

returnsListRolesResponse

Array of all roles with their metadata

const response = await scalekit.role.listRoles();
response.roles.forEach(role => {
console.log(`${role.displayName}: ${role.permissions.length} permissions`);
});
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncupdateRole

Updates an existing environment role’s properties and permissions.

paramroleNamestring

Role to update

paramroleUpdateRole

Updated role properties

returnsUpdateRoleResponse

Updated role details

await scalekit.role.updateRole('content_editor', {
displayName: 'Content Editor (Updated)',
permissions: ['content:read', 'content:write', 'content:edit', 'content:review']
});
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncdeleteRole

Deletes an environment role and reassigns its users to another role.

paramroleNamestring

Role to delete

paramreassignRoleNamestring

Optional. Target role for user migration

returnsobject

Empty response on success

MessageShape(typeof EmptySchema)
await scalekit.role.deleteRole('old_role', 'new_role');
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncdeleteRoleBase

Removes an environment role’s inheritance relationship, eliminating inherited permissions from its base role.

paramroleNamestring

Role to remove inheritance from

returnsobject

Empty response on success

MessageShape(typeof EmptySchema)
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncgetRoleUsersCount

Gets the number of users assigned to an environment role.

paramroleNamestring

Role to count users for

returnsGetRoleUsersCountResponse

Total user count (direct and inherited)

const response = await scalekit.role.getRoleUsersCount('admin');
console.log(`${response.count} users have admin role`);
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asynccreateOrganizationRole

Creates a new organization-specific role with custom permissions.

paramorgIdstring

Organization identifier (format: “org_…”)

paramroleCreateOrganizationRole

Role configuration containing:

returnsCreateOrganizationRoleResponse

Created organization role

await scalekit.role.createOrganizationRole('org_123456', {
name: 'department_lead',
displayName: 'Department Lead',
description: 'Manages department members',
permissions: ['dept:members:read', 'dept:members:invite']
});
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncgetOrganizationRole

Retrieves details for a specific organization role.

paramorgIdstring

Organization identifier

paramroleNamestring

Role name to retrieve

returnsGetOrganizationRoleResponse

Organization role details

const response = await scalekit.role.getOrganizationRole(
'org_123456',
'department_lead'
);
console.log('Permissions:', response.role.permissions);
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asynclistOrganizationRoles

Lists all roles available to an organization (environment + organization-specific).

paramorgIdstring

Organization identifier

returnsListOrganizationRolesResponse

Array of available roles

const response = await scalekit.role.listOrganizationRoles('org_123456');
response.roles.forEach(role => {
console.log(`${role.displayName} (${role.scope})`);
});
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncupdateOrganizationRole

Updates an organization role’s properties and permissions.

paramorgIdstring

Organization identifier

paramroleNamestring

Role to update

paramroleUpdateRole

Updated role properties

returnsUpdateOrganizationRoleResponse

Updated role

await scalekit.role.updateOrganizationRole('org_123456', 'department_lead', {
permissions: ['dept:members:read', 'dept:members:invite', 'dept:members:remove']
});
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncdeleteOrganizationRole

Deletes an organization role and reassigns its users.

paramorgIdstring

Organization identifier

paramroleNamestring

Role to delete

paramreassignRoleNamestring

Optional. Target role for user migration

returnsobject

Empty response on success

MessageShape(typeof EmptySchema)
await scalekit.role.deleteOrganizationRole(
'org_123456',
'old_role',
'new_role'
);
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncgetOrganizationRoleUsersCount

Gets the number of users assigned to an organization role.

paramorgIdstring

Organization identifier

paramroleNamestring

Role to count users for

returnsGetOrganizationRoleUsersCountResponse

User count

const response = await scalekit.role.getOrganizationRoleUsersCount(
'org_123456',
'admin'
);
console.log(`${response.count} admins in this organization`);
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncupdateDefaultRoles

Sets the default creator and/or member roles for the environment.

paramoptionsobject

Optional fields: defaultCreatorRole, defaultMemberRole.

defaultCreatorRole, defaultMemberRole
returnsUpdateDefaultRolesResponse

Updated default roles configuration

clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asynclistDependentRoles

Lists all roles that extend (depend on) the specified role.

paramroleNamestring

Role to find dependents for

returnsListDependentRolesResponse

Array of roles that depend on the given role

clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncupdateDefaultOrganizationRoles

Sets the default role automatically assigned to new organization members.

paramorgIdstring

Organization identifier

paramdefaultMemberRolestring

Role name to assign by default

returnsUpdateDefaultOrganizationRolesResponse

Updated configuration

await scalekit.role.updateDefaultOrganizationRoles('org_123456', 'member');
clientRoleshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/role.ts
#asyncdeleteOrganizationRoleBase

Removes a role’s inheritance relationship, eliminating inherited permissions from base role.

paramorgIdstring

Organization identifier

paramroleNamestring

Role to remove inheritance from

returnsobject

Empty response on success

MessageShape(typeof EmptySchema)
await scalekit.role.deleteOrganizationRoleBase('org_123456', 'custom_role');