> For the complete documentation index, see [llms.txt](https://docs.sonoransoftware.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sonoransoftware.com/store/cctv/permissions.md).

# Permissions

Configure least-privilege ACE access for CCTV administrators, live viewers, and recording reviewers.

CCTV checks permissions on the server. Grant only the actions each role needs.

| ACE node              | Purpose                                                          |
| --------------------- | ---------------------------------------------------------------- |
| cctv.admin            | Create and manage terminals, cameras, placement, and persistence |
| cctv.live.view        | View permitted cameras live                                      |
| cctv.recording.view   | Open the archive and replay permitted recordings                 |
| cctv.recording.create | Create manual recordings or bookmarks                            |
| cctv.recording.delete | Delete recordings                                                |
| cctv.recording.upload | Use the configured upload workflow                               |
| cctv.discord.send     | Use the configured Discord workflow                              |
| cctv.remote.all       | Access all remotely available terminal groups                    |

## Example roles

```cfg
add_ace group.cctvadmin cctv.admin allow
add_ace group.cctvadmin cctv.live.view allow
add_ace group.cctvadmin cctv.recording.view allow
add_ace group.cctvadmin cctv.recording.create allow

add_ace group.cctvstaff cctv.live.view allow
add_ace group.cctvstaff cctv.recording.view allow
add_ace group.cctvstaff cctv.recording.create allow

add_ace group.cctvsupervisor cctv.recording.delete allow
add_ace group.cctvsupervisor cctv.recording.upload allow
add_ace group.cctvsupervisor cctv.discord.send allow
```

Assign player identifiers to these groups using the server's existing ACE structure.

## Terminal-specific access

Use the following nodes to restrict access more precisely:

* `cctv.terminal.<terminalId>` grants access to one terminal.
* `cctv.remote.<group>` grants remote access to one terminal group.
* `cctv.remote.all` grants remote access across every group.

Prefer terminal or group permissions over cctv.remote.all. Automatic camera discovery, status, and cleanup require cctv.admin.

## Optional integrations

Upload and Discord permissions do not enable those integrations by themselves. The server-only integration must also be configured. Do not grant upload, deletion, sharing, or broad remote access to normal viewers unless their role requires it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sonoransoftware.com/store/cctv/permissions.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
