> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended**:
> ```bash
> npx @scalekit-inc/cli setup
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for 40+ agents.
> Features: full-stack-auth, agent-auth, mcp-auth, modular-sso, modular-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Permissions

Manage fine-grained permissions
<div class="sdk-client-page">

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.

### list_permissions
<div class="sdk-method-section">
  
    
      

      Method to list all permissions

      
        Optional. Token for pagination
      
      
        Optional. Number of permissions per page
      
      
        List Permissions Response
      

```python wrap showLineNumbers=false
response = scalekit_client.permissions.list_permissions(
    page_size=50
)

for permission in response[0].permissions:
    print(f"Permission: {permission.name}")
```

    
  
</div>

### get_permission
<div class="sdk-method-section">
  
    
      

      Method to get permission by name

      
        Permission name to get permission details
      
      
        Get Permission Response
      

```python wrap showLineNumbers=false
response = scalekit_client.permissions.get_permission('write:articles')
permission = response[0].permission
```

    
  
</div>

### create_permission
<div class="sdk-method-section">
  
    
      

      Method to create a new permission

      
        Permission create payload.
      
      
        Create Permission Response
      

```python wrap showLineNumbers=false
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)
```

    
  
</div>

### update_permission
<div class="sdk-method-section">
  
    
      

      Method to update an existing permission by name

      
        Permission name to update
      
      
        Permission create payload.
      
      
        Update Permission Response
      

```python wrap showLineNumbers=false
from scalekit.v1.roles.roles_pb2 import CreatePermission

permission = CreatePermission()
permission.description = "Updated description"

response = scalekit_client.permissions.update_permission(
    'write:articles',
    permission
)
```

    
  
</div>

### delete_permission
<div class="sdk-method-section">
  
    
      

      Method to delete permission by name

      
        Permission name to be deleted
      
      
        Empty on success.
      

```python wrap showLineNumbers=false
scalekit_client.permissions.delete_permission('write:articles')
```

    
  
</div>

### list_role_permissions
<div class="sdk-method-section">
  
    
      

      Method to list all permissions associated with a role

      
        Role name to get permissions for
      
      
        List Role Permissions Response
      

```python wrap showLineNumbers=false
response = scalekit_client.permissions.list_role_permissions('editor')

for permission in response[0].permissions:
    print(f"Permission: {permission.name}")
```

    
  
</div>

### add_permissions_to_role
<div class="sdk-method-section">
  
    
      

      Method to add permissions to a role

      
        Role name to add permissions to
      
      
        List of permission names to add
      
      
        The created resource.
      

```python wrap showLineNumbers=false
scalekit_client.permissions.add_permissions_to_role(
    'editor',
    ['write:articles', 'edit:articles']
)
```

    
  
</div>

### remove_permission_from_role
<div class="sdk-method-section">
  
    
      

      Method to remove a permission from a role

      
        Role name to remove permission from
      
      
        Permission name to remove
      
      
        Empty on success.
      

```python wrap showLineNumbers=false
scalekit_client.permissions.remove_permission_from_role(
    'editor',
    'write:articles'
)
```

    
  
</div>

### list_effective_role_permissions
<div class="sdk-method-section">
  
    
      

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

      
        Role name to get effective permissions for
      
      
        List Effective Role Permissions Response
      

```python wrap showLineNumbers=false
response = scalekit_client.permissions.list_effective_role_permissions('senior_editor')

print(f'Total effective permissions: {len(response[0].permissions)}')
```

    
  
</div>

</div>


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
