# environments.<name>.protection

> Guard rails for an environment.

Guard rails for an environment.

- **Type:** object
- **Since:** manifest v1

## Example

```yaml
environments:
  production:
    protection:
      require_approval: true
```

## Fields

### require_approval

`environments.<name>.protection.require_approval`

Deploys and changes by agents (and by roles not in `approver_roles`) need a human to approve with a passkey.

- **Type:** boolean
- **Since:** manifest v1

```yaml
environments:
  production:
    protection:
      require_approval: true
```

### approver_roles

`environments.<name>.protection.approver_roles`

Roles that may approve and may change the environment directly.

- **Type:** list of `owner`, `admin`, `developer`
- **Default:** `["owner","admin"]`
- **Since:** manifest v1

```yaml
environments:
  production:
    protection:
      approver_roles:
        - owner
        - admin
```

### allowed_branches

`environments.<name>.protection.allowed_branches`

Only these branches may deploy to the environment.

- **Type:** list of string
- **Since:** manifest v1

```yaml
environments:
  production:
    protection:
      allowed_branches:
        - main
```

## See also

- [environments](/docs/manifest/environments/): all fields of `environments`
- [guv.yaml reference](/docs/manifest/)
