> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adaptive-ml.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Permissions

> Manage permissions, roles and teams

Configure roles, permissions, and teams to control what users can do in your Adaptive deployment.

* **Permissions** grant ability to perform actions (e.g., `project:adapt` allows fine-tuning)
* **Roles** are named sets of permissions, assignable to users
* **Teams** are groups with shared access to projects and resources

Users can belong to multiple teams with different roles in each.

## Common operations

```python theme={null}
# Create a user
adaptive.users.create(
    email="user@example.com",
    name="John Doe",
    teams_with_role=[("customer-support-team", "admin")]
)

# Add user to team
adaptive.users.add_to_team(
    email="user@example.com",
    team="customer-support-team",
    role="admin"
)

# Remove user from team
adaptive.users.remove_from_team(
    email="user@example.com",
    team="customer-support-team"
)

# Share project with team
adaptive.projects.share(
    project="project-to-share",
    team="customer-support-team",
    role="admin",
    is_owner=False
)

# Create a team
adaptive.teams.create(
    key="customer-support-team",
    name="Customer Support Team",
)

# Create a custom role
adaptive.roles.create(
    key="new-role",
    permissions=["project:read", "project:create"]
)
```

## Admin team

The reserved `admin` team controls global operations. Members with `admin` or `platform_admin` role can:

* Create new roles and teams
* Add/remove users from any team

Configure seed admins in `values.yaml`:

```yaml theme={null}
auth:
  default_role: admin  # admin, platform_admin, power_user, read-only, inference, annotator
  default_team: default
  admins: []  # Email addresses for initial admins
```

## Default roles

| Role           | Key              | Description                                                        |
| -------------- | ---------------- | ------------------------------------------------------------------ |
| Admin          | `admin`          | All permissions. Can create teams/roles only if in `admin` team.   |
| Platform Admin | `platform-admin` | Manages roles, teams, and users. Requires `admin` team membership. |
| Power User     | `power_user`     | Full project management, training, evaluation, model deployment.   |
| Read Only      | `read-only`      | View project details only.                                         |
| Inference      | `inference`      | Interact with models attached to team projects.                    |
| Annotator      | `annotator`      | Interact with models and add feedback.                             |

## All permissions

### Admin

| Permission           | Scope                                                      |
| -------------------- | ---------------------------------------------------------- |
| `admin:manage_roles` | List roles (any team), create roles (admin team)           |
| `admin:manage_teams` | List teams (any team), create teams (admin team)           |
| `admin:manage_users` | List/update users in same team, global update (admin team) |

### Project

| Permission                    | Scope                                                    |
| ----------------------------- | -------------------------------------------------------- |
| `project:read`                | View project details                                     |
| `project:create`              | Create projects                                          |
| `project:update`              | Update project details                                   |
| `project:manage_models`       | Attach/detach models                                     |
| `project:adapt`               | Train models                                             |
| `project:evaluate`            | Evaluate models                                          |
| `project:interact`            | Chat with models                                         |
| `project:add_feedback`        | Add interaction feedback                                 |
| `project:read_interactions`   | View logged interactions                                 |
| `project:update_interactions` | Update interaction metadata                              |
| `project:delete_interactions` | Delete logged interactions                               |
| `project:share`               | Share with another team (requires both team memberships) |
| `project:judge_*`             | Manage judges (create, read, update, delete)             |
| `project:grader_*`            | Manage graders (create, read, update, delete)            |
| `project:tool_provider_*`     | Manage tool providers                                    |
| `project:job_*`               | Manage jobs (create, read, cancel)                       |
| `project:custom_script_*`     | Manage custom scripts                                    |
| `project:metric_*`            | Manage metrics (create, read, update, delete)            |

### Resources

| Permission            | Scope                                         |
| --------------------- | --------------------------------------------- |
| `dataset:create`      | Create datasets                               |
| `metric:create`       | Create feedback keys                          |
| `model:manage_models` | Deploy/terminate models globally (admin team) |
| `team:manage`         | Update users in same team                     |

### Integrations

| Permission           | Scope               |
| -------------------- | ------------------- |
| `integration:read`   | View integrations   |
| `integration:create` | Create integrations |
| `integration:update` | Update integrations |
| `integration:delete` | Delete integrations |

### Remote environments

| Permission          | Scope                      |
| ------------------- | -------------------------- |
| `remote_env:read`   | View remote environments   |
| `remote_env:create` | Create remote environments |
| `remote_env:update` | Update remote environments |
| `remote_env:delete` | Delete remote environments |
