Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Permissions

Manage fine-grained permissions

Use the permission client to define fine-grained permissions that roles can grant.

Model permissions for resources in your app, then attach them to roles.

clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asynccreatePermission

Creates a new permission defining a specific action users can perform.

parampermissionCreatePermission

Permission object containing:

returnsCreatePermissionResponse

Created permission with ID and timestamps

await scalekit.permission.createPermission({
name: 'read:invoices',
description: 'View invoice details'
});
clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asyncgetPermission

Retrieves complete information for a specific permission.

parampermissionNamestring

Permission identifier (e.g., ‘read:documents’)

returnsGetPermissionResponse

Permission details including description and timestamps

const response = await scalekit.permission.getPermission('read:invoices');
console.log('Description:', response.permission.description);
clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asynclistPermissions

Lists all permissions with pagination support.

parampageTokenstring

Optional. Token for retrieving the next page

parampageSizenumber

Optional. Number of permissions per page (max: 100)

returnsListPermissionsResponse

Paginated list of permissions

const response = await scalekit.permission.listPermissions();
response.permissions.forEach(perm => {
console.log(`${perm.name}: ${perm.description}`);
});
clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asyncupdatePermission

Updates an existing permission’s attributes.

parampermissionNamestring

Permission to update

parampermissionCreatePermission

Updated permission properties

returnsUpdatePermissionResponse

Updated permission details

await scalekit.permission.updatePermission('read:invoices', {
name: 'read:invoices',
description: 'View invoice details and history (updated)'
});
clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asyncdeletePermission

Permanently removes a permission.

parampermissionNamestring

Permission identifier to delete

returnsobject

Empty response on success

MessageShape(typeof EmptySchema)
await scalekit.permission.deletePermission('deprecated:feature');
clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asynclistRolePermissions

Lists direct permissions assigned to a role (excluding inherited permissions).

paramroleNamestring

Role to examine

returnsListRolePermissionsResponse

List of directly assigned permissions only

const response = await scalekit.permission.listRolePermissions('editor');
console.log('Direct permissions:', response.permissions);
clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asyncaddPermissionsToRole

Grants additional permissions to a role without removing existing assignments.

paramroleNamestring

Target role to enhance

parampermissionNamesstring[]

Array of permission identifiers to add

returnsAddPermissionsToRoleResponse

Updated list of all role permissions

await scalekit.permission.addPermissionsToRole('editor', [
'read:documents',
'write:documents',
'edit:documents'
]);
clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asyncremovePermissionFromRole

Revokes a specific permission from a role, restricting access for all assigned users.

paramroleNamestring

Role to modify

parampermissionNamestring

Permission to remove

returnsobject

Empty response on success

MessageShape(typeof EmptySchema)
await scalekit.permission.removePermissionFromRole('editor', 'delete:documents');
clientPermissionshttps://github.com/scalekit-inc/scalekit-sdk-node/blob/main/src/permission.ts
#asynclistEffectiveRolePermissions

Lists all effective permissions for a role including both direct and inherited permissions.

paramroleNamestring

Role to analyze

returnsListEffectiveRolePermissionsResponse

Complete list including inherited permissions

const response = await scalekit.permission.listEffectiveRolePermissions('senior_editor');
console.log('Total effective permissions:', response.permissions.length);