Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Permissions

Manage fine-grained permissions

Use scalekit_client.permissions to define fine-grained permissions that roles can grant.

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

clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asynclist_permissions

Method to list all permissions

parampage_tokenOptional[str]

Optional. Token for pagination

parampage_sizeOptional[int]

Optional. Number of permissions per page

returnsListPermissionsResponse

List Permissions Response

response = scalekit_client.permissions.list_permissions(
page_size=50
)
for permission in response[0].permissions:
print(f"Permission: {permission.name}")
clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asyncget_permission

Method to get permission by name

parampermission_namestr

Permission name to get permission details

returnsGetPermissionResponse

Get Permission Response

response = scalekit_client.permissions.get_permission('write:articles')
permission = response[0].permission
clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asynccreate_permission

Method to create a new permission

parampermissionCreatePermission

Permission create payload.

returnsCreatePermissionResponse

Create Permission Response

from scalekit.v1.roles.roles_pb2 import CreatePermission
permission = CreatePermission()
permission.name = "write:articles"
permission.description = "Permission to write articles"
response = scalekit_client.permissions.create_permission(permission)
clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asyncupdate_permission

Method to update an existing permission by name

parampermission_namestr

Permission name to update

parampermissionCreatePermission

Permission create payload.

returnsUpdatePermissionResponse

Update Permission Response

from scalekit.v1.roles.roles_pb2 import CreatePermission
permission = CreatePermission()
permission.description = "Updated description"
response = scalekit_client.permissions.update_permission(
'write:articles',
permission
)
clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asyncdelete_permission

Method to delete permission by name

parampermission_namestr

Permission name to be deleted

returnsNone

Empty on success.

scalekit_client.permissions.delete_permission('write:articles')
clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asynclist_role_permissions

Method to list all permissions associated with a role

paramrole_namestr

Role name to get permissions for

returnsListRolePermissionsResponse

List Role Permissions Response

response = scalekit_client.permissions.list_role_permissions('editor')
for permission in response[0].permissions:
print(f"Permission: {permission.name}")
clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asyncadd_permissions_to_role

Method to add permissions to a role

paramrole_namestr

Role name to add permissions to

parampermission_nameslist[str]

List of permission names to add

returnsNone

The created resource.

scalekit_client.permissions.add_permissions_to_role(
'editor',
['write:articles', 'edit:articles']
)
clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asyncremove_permission_from_role

Method to remove a permission from a role

paramrole_namestr

Role name to remove permission from

parampermission_namestr

Permission name to remove

returnsNone

Empty on success.

scalekit_client.permissions.remove_permission_from_role(
'editor',
'write:articles'
)
clientPermissionhttps://github.com/scalekit-inc/scalekit-sdk-python/blob/main/scalekit/permissions.py
#asynclist_effective_role_permissions

Method to list all effective permissions for a role (including inherited permissions)

paramrole_namestr

Role name to get effective permissions for

returnsListEffectiveRolePermissionsResponse

List Effective Role Permissions Response

response = scalekit_client.permissions.list_effective_role_permissions('senior_editor')
print(f'Total effective permissions: {len(response[0].permissions)}')