# Permissions Reference

This page lists all FlowDrop permissions in one place. Assign these at **Administration > People > Permissions** (`/admin/people/permissions`) — filter for "flowdrop" to find them quickly.

## Core Permissions

| Permission | Module | What It Allows |
|------------|--------|---------------|
| `administer flowdrop` | `flowdrop` | Full administrative access to all FlowDrop entities and configuration |
| `administer flowdrop configuration` | `flowdrop` | Access to FlowDrop configuration pages |

## Runtime & Execution

| Permission | Module | What It Allows |
|------------|--------|---------------|
| `administer flowdrop runtime` | `flowdrop_runtime` | Full access to runtime configuration and workflow execution |
| `access flowdrop runtime api` | `flowdrop_runtime` | Access runtime API endpoints |

## Triggers

| Permission | Module | What It Allows |
|------------|--------|---------------|
| `administer flowdrop triggers` | `flowdrop_trigger` | Create, edit, and delete trigger configurations |
| `view flowdrop triggers` | `flowdrop_trigger` | View trigger configuration list and details |

## Human-in-the-Loop (Interrupts)

| Permission | Module | What It Allows |
|------------|--------|---------------|
| `administer flowdrop interrupts` | `flowdrop_interrupt` | Full administrative access to interrupt system |
| `view own flowdrop interrupts` | `flowdrop_interrupt` | View own pending and resolved interrupt requests |
| `view any flowdrop interrupts` | `flowdrop_interrupt` | View any interrupt request regardless of ownership |
| `resolve own flowdrop interrupts` | `flowdrop_interrupt` | Respond to own interrupt requests (confirm, choose, etc.) |
| `resolve any flowdrop interrupts` | `flowdrop_interrupt` | Respond to any interrupt request regardless of ownership |
| `cancel own flowdrop interrupts` | `flowdrop_interrupt` | Cancel own pending interrupt requests |
| `cancel any flowdrop interrupts` | `flowdrop_interrupt` | Cancel any pending interrupt request regardless of ownership |

## StateGraph

| Permission | Module | What It Allows |
|------------|--------|---------------|
| `administer flowdrop_stategraph` | `flowdrop_stategraph` | Full access to StateGraph configuration |
| `create state_checkpoint` | `flowdrop_stategraph` | Create state checkpoints |
| `view own state_checkpoint` | `flowdrop_stategraph` | View own state checkpoints |
| `view any state_checkpoint` | `flowdrop_stategraph` | View any state checkpoint |
| `edit own state_checkpoint` | `flowdrop_stategraph` | Edit own state checkpoints |
| `edit any state_checkpoint` | `flowdrop_stategraph` | Edit any state checkpoint |
| `delete own state_checkpoint` | `flowdrop_stategraph` | Delete own state checkpoints |
| `delete any state_checkpoint` | `flowdrop_stategraph` | Delete any state checkpoint |
| `manage approval gates` | `flowdrop_stategraph` | Approve or reject approval gate requests |

## Playground

| Permission | Module | What It Allows |
|------------|--------|---------------|
| `administer flowdrop_playground` | `flowdrop_playground` | Access to playground settings |
| `execute playground workflow` | `flowdrop_playground` | Use the playground to test workflows |

## Suggested Role Assignments

Here are typical permission assignments for common roles:

### Site Builder / Workflow Author

Needs to create, edit, execute, and test workflows:

- `administer flowdrop`
- `administer flowdrop runtime`
- `administer flowdrop triggers`
- `execute playground workflow`
- `resolve any flowdrop interrupts`
- `view any flowdrop interrupts`

### Content Editor / Workflow User

Needs to respond to interrupts and view workflow results, but not edit workflow definitions:

- `view flowdrop triggers`
- `view own flowdrop interrupts`
- `resolve own flowdrop interrupts`

### Administrator

Full access to everything:

- All permissions listed above
