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

# Permissions

> Understand permission levels and access control

## Overview

VibeHub uses a simple but effective permission system to control who can do what in your projects.

## Permission Levels

### Owner

The person who created the project. Owners have full control:

| Action               | Allowed |
| -------------------- | ------- |
| View project         | Yes     |
| Pull code            | Yes     |
| Push code            | Yes     |
| Invite collaborators | Yes     |
| Update permissions   | Yes     |
| Change settings      | Yes     |
| Delete project       | Yes     |

<Note>
  Every project has exactly one owner. Ownership cannot be transferred.
</Note>

### Read & Write

Full access to code but no administrative control:

| Action               | Allowed |
| -------------------- | ------- |
| View project         | Yes     |
| Pull code            | Yes     |
| Push code            | Yes     |
| Create branches      | Yes     |
| Merge branches       | Yes     |
| Invite collaborators | No      |
| Update permissions   | No      |
| Change settings      | No      |
| Delete project       | No      |

### Read Only

View access without the ability to make changes:

| Action          | Allowed |
| --------------- | ------- |
| View project    | Yes     |
| Pull code       | Yes     |
| View commits    | Yes     |
| Browse files    | Yes     |
| Push code       | No      |
| Create branches | No      |
| Merge branches  | No      |
| Change anything | No      |

## Choosing the Right Permission

<AccordionGroup>
  <Accordion title="When to use Read Only" icon="eye">
    * External reviewers or auditors
    * Stakeholders who need visibility
    * New team members during onboarding
    * Contractors with limited scope
  </Accordion>

  <Accordion title="When to use Read & Write" icon="pen">
    * Active developers on the project
    * Team members who need to push code
    * Anyone who should create branches and merge
  </Accordion>
</AccordionGroup>

## Permission Inheritance

Permissions apply at the **project level**. This means:

* A collaborator has the same access to all branches
* There's no per-branch permission control
* Settings access is reserved for owners only

## Checking Your Permission

To see what permission you have on a project:

1. Look for permission indicators in the UI
2. Try to perform an action (like pushing code)
3. Check with the project owner

<Tip>
  If you're a collaborator and need more access, contact the project owner to upgrade your permissions.
</Tip>

## Permission Security

### What Collaborators Can't Do

Even with Read & Write access, collaborators cannot:

* Delete the project
* Change project visibility
* Invite other collaborators
* Remove other collaborators
* Modify project settings
* Access deployment configurations

### Protected Actions

Some actions are always restricted to owners:

| Action                | Who Can Do It |
| --------------------- | ------------- |
| Delete project        | Owner only    |
| Change visibility     | Owner only    |
| Manage collaborators  | Owner only    |
| Configure deployment  | Owner only    |
| Delete default branch | Owner only    |

## Public vs Private Projects

Permissions interact with project visibility:

### Private Projects

* Only collaborators can view
* Permissions work as described above

### Public Projects

* Anyone can view (read access)
* Only collaborators can push
* Permissions still control write access

## Best Practices

1. **Principle of least privilege** - Give the minimum access needed
2. **Regular audits** - Review who has access periodically
3. **Prompt removal** - Remove access when people leave the project
4. **Document decisions** - Keep track of why certain people have access

## Next Steps

<CardGroup cols={2}>
  <Card title="Invite Collaborators" icon="user-plus" href="/collaboration/inviting-collaborators">
    Add new team members
  </Card>

  <Card title="Manage Team" icon="users" href="/collaboration/managing-team">
    Update or remove access
  </Card>
</CardGroup>
