---
title: "Manage Assistant access with RBAC | Grafana Cloud documentation"
description: "Understand how to assign Grafana Assistant roles and permissions."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Manage Assistant access with RBAC

Grafana Assistant relies on Grafana role-based access control (RBAC) so you can decide who can chat, run investigations, or administer deployment-wide settings. This article explains the roles available, the permissions they unlock, and how to grant users the access they need.

> Note
> 
> Grafana Cloud honors the permissions granted by basic, custom, and Assistant-specific roles. In self-managed Grafana, use the basic **Viewer**, **Editor**, and **Admin** organization roles unless you run Grafana Enterprise in a configuration that supports Assistant custom permissions. In other self-managed deployments, Assistant uses a compatibility fallback based on the user’s basic organization role: Viewers can access and read, Editors can also create, write, and delete non-administrative resources, and Admins receive administrative permissions. Custom and Assistant-specific roles can’t grant permissions beyond this fallback. Contact your Grafana account team to confirm whether your deployment supports Assistant custom permissions. The `plugins.app:access` permission still controls access to the plugin, and self-managed deployments hide some Grafana Cloud-dependent features entirely.

## Before you begin

Decide who needs chat access, admin access, or investigation access before you start assigning roles.

- **Organization administrator access**: Only admins can assign Assistant-related roles and permissions.
- **RBAC plan**: Decide which teams need chat, investigations, or administrative control. For planning guidance, refer to [Plan your Grafana RBAC rollout strategy](https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/).
- **Feature availability**: Confirm Assistant is available or enabled in your stack. Investigations require a separate entitlement.
- **Scope per deployment**: Assistant uses Grafana RBAC in the Grafana deployment where the plugin runs. In self-managed Grafana Enterprise deployments that support Assistant custom permissions, permissions are resolved by that local Grafana instance, even when it isn’t reachable from the internet. Use `plugins.app:access` scoped to `plugins:id:grafana-assistant-app` to control who can open Assistant. To remove or disable Assistant in a deployment, use the controls available in your stack. Where plugin settings expose enablement controls, an administrator can navigate to **Administration** &gt; **Plugins and data** &gt; **Plugins**, search for **Grafana Assistant** or go directly to `/plugins/grafana-assistant-app`, clear the agreement checkbox or the **Assistant enabled** or **Enable Assistant** checkbox, and click **Save**.

## Understand available roles

Grafana offers baseline organization roles plus Assistant-specific roles. Combining them lets you tailor access without granting more privileges than necessary.

**Organization roles** define broad access in Grafana:

Expand table

| Organization role | What the role can do with Grafana Assistant                                                                                                                                                     |
|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Admin             | Full access to Assistant chat, investigations, rules, and MCP server management.                                                                                                                |
| Editor            | Chat, coding execution, CLI access, investigations, personal MCP server management, and read-only Managed Sandboxes and GitHub App settings.                                                    |
| Viewer            | Chat, coding execution, and read-only Managed Sandboxes and repository settings.                                                                                                                |
| No basic role     | No Assistant access. In Grafana Cloud or in self-managed Grafana Enterprise deployments that support Assistant custom permissions, an administrator can add an Assistant-specific role instead. |

> Tip
> 
> To limit Assistant access for users who hold a Viewer or Editor organization role, an administrator can [update the basic role with the RBAC API](https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/manage-rbac-roles/#update-basic-role-using-the-rbac-api) and remove specific permissions. For example, remove `plugins.app:access` scoped to `plugins:id:grafana-assistant-app` or remove `grafana-assistant-app.chats:access` from the Viewer role.

**Assistant-specific roles** extend or restrict access regardless of the user’s organization role in Grafana Cloud. They also work in self-managed Grafana Enterprise deployments that support Assistant custom permissions:

Expand table

| Assistant role                          | What the role unlocks                                                                                                                                                           |
|-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Assistant Coding User                   | Runs Managed Sandboxes and reads safe provider and repository settings. Granted to Viewer, Editor, and Admin by default.                                                        |
| Assistant Coding Maintainer             | Configures authorized repositories, including environments, reviews, mentions, and automatic PRs. Manages shared sandbox secrets. Explicit assignment only.                     |
| Assistant Coding Admin                  | Administers global coding policy and integrations as well as repositories. Granted to Admin by default.                                                                         |
| Assistant Admin                         | Administers deployment-wide Assistant settings, usage analytics and limits, rules, MCP servers, automations, and investigations in addition to chat.                            |
| Assistant Sandbox Admin                 | Manages Python sandbox settings. Granted to Admin by default.                                                                                                                   |
| Assistant Cloud MCP User                | Authorizes and manages external AI agent connections to Grafana via the [Grafana Cloud MCP server](https://grafana.com/docs/grafana-cloud/ai-tools/mcp-servers/cloud-mcp/).     |
| Assistant MCP User                      | Uses Assistant chat, manages personal MCP servers and rules, and views Managed Sandboxes and GitHub App settings.                                                               |
| Assistant User                          | Basic Assistant chat, read-only Managed Sandboxes settings, personal rule management, personal skills, personal automations, and Assistant Watchers.                            |
| Assistant CLI User                      | Authenticates and uses the Grafana Assistant CLI. Grants `grafana-assistant-app.tokens:access`. Automatically assigned to users with the **Editor** organization role or above. |
| Assistant Investigation User            | Launches and manages Assistant investigations.                                                                                                                                  |
| Assistant Infrastructure Memory Scanner | Starts an infrastructure memory scan, which regenerates the stack’s infrastructure memories. Granted to Editor and Admin by default.                                            |
| Assistant System Investigation Viewer   | Adds visibility of system-created investigations. Combine with **Assistant Investigation User** or organization Admin.                                                          |
| gcx User                                | Authorizes GCX CLI connections to Grafana. Granted to the Viewer role by default so any logged-in user can run `gcx login`.                                                     |

Assign Assistant-specific roles to give targeted access to teammates who are not Editors or Admins in Grafana Cloud or in self-managed Grafana Enterprise deployments that support Assistant custom permissions.

**Assistant User** and **Assistant MCP User** include read access to rules and suggested prompts shared with your stack. **Assistant MCP User** also includes read access to shared MCP servers. These grants don’t let you edit shared resources or read another user’s private resources.

> Note
> 
> System-created investigations (launched automatically via IRM webhooks, alerts, or incidents) are hidden by default. Only users with the **Assistant System Investigation Viewer** role (combined with **Assistant Investigation User**) or organization **Admin** role can see them.

## View sandbox secret metadata

When sandbox secrets are enabled, Viewers can see each secret’s name, description, environment variable, type, and destination. Settings never show saved secret values.

Viewing shared secrets requires `grafana-assistant-app.sandbox-secrets.tenant:read`. Assistant Coding User, Assistant Coding Maintainer, and Assistant Coding Admin include this action. Personal sandbox secrets are disabled. No settings permission is required. Read access does not allow management or reveal values through settings. To manage secrets, refer to [Sandbox secret permissions](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/privacy-and-security/rbac/#sandbox-secret-permissions).

## Grant access in Grafana

Use the following procedures to grant the right level of access without over-provisioning.

If you use self-managed Grafana without support for Assistant custom permissions, grant Assistant access with the basic **Viewer**, **Editor**, or **Admin** organization roles and `plugins.app:access`. The Assistant-specific role procedures in this section apply to Grafana Cloud and to self-managed Grafana Enterprise deployments that support Assistant custom permissions.

### Grant basic Assistant chat access

1. Sign in as an organization administrator.
2. Go to **Administration &gt; Users and access &gt; Users**.
3. Select the user and open the **Role** picker.
4. Choose **Assistant &gt; Assistant User**.
5. Click **Apply**.

### Grant CLI access

Users with the **Editor** organization role or above receive the **Assistant CLI User** role automatically. To grant CLI access to a user without the Editor role:

1. Sign in as an organization administrator.
2. Navigate to **Administration &gt; Users and access &gt; Users**.
3. Select the user and open the **Role** picker.
4. Choose **Assistant &gt; Assistant CLI User**.
5. Click **Apply**.

### Allow users to launch investigations and skills

1. Sign in as an organization administrator.
2. Navigate to **Administration &gt; Users and access &gt; Users**.
3. Select the user and open the **Role** picker.
4. Choose **Assistant &gt; Assistant Investigation User**.
5. Click **Apply**.

### Allow users to view system-created investigations

System-created investigations are launched automatically by IRM webhooks, alerts, or incidents. By default, only organization Admins can view them. This role is additive — the user also needs the **Assistant Investigation User** role for general investigation access.

1. Sign in as an organization administrator.
2. Navigate to **Administration &gt; Users and access &gt; Users**.
3. Select the user and open the **Role** picker.
4. Choose **Assistant &gt; Assistant Investigation User** (if not already assigned).
5. Also choose **Assistant &gt; Assistant System Investigation Viewer**.
6. Click **Apply**.

### View Managed Sandboxes settings

By default, Viewers, Editors, and Admins can read Managed Sandboxes settings. **Assistant User** and **Assistant MCP User** include `grafana-assistant-app.settings.coding-agents:read`, so you can see the configured providers and defaults without admin access. This permission doesn’t expose credentials or grant access to the GitHub, Cursor, or Claude integration settings.

To enable or disable Managed Sandboxes, choose the provider, or set the approval policy, you need `grafana-assistant-app.settings.coding-agents:write`, included in **Assistant Coding Admin** and **Assistant Admin**. Sandbox secrets use separate permissions. Refer to [Sandbox secret permissions](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/privacy-and-security/rbac/#sandbox-secret-permissions).

### Control Managed Sandboxes access

**Assistant Coding User** is granted to Viewer, Editor, and Admin by default. It lets users run Managed Sandboxes and read coding configuration other than credentials. Managed Sandboxes must also be enabled for the tenant, and repository and user authorization still apply.

Coding Users can see every repository the tenant’s GitHub App installation can access, including private repository names, and each repository’s enrollment, network, and automatic-publication settings. This extends GitHub settings visibility to Viewers. It doesn’t grant access to repository contents or bypass authorization when Managed Sandboxes run.

Refreshing the repository inventory cache requires **Assistant Coding Maintainer** or **Assistant Coding Admin**. Viewing environment build logs requires **Assistant Coding Admin**, or **Assistant Coding Maintainer** with GitHub write access to the repository. `grafana-assistant-app.github:read` alone permits neither.

Assign **Assistant Coding Maintainer** explicitly to users or teams who manage repositories. With their linked GitHub account’s current write access, Maintainers can configure repository enrollment, environments, network policy, reviews, mentions, and automatic pull requests. They can also manage shared sandbox secrets. Refer to [Sandbox secret permissions](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/privacy-and-security/rbac/#sandbox-secret-permissions). They can’t connect GitHub installations, change global coding policy, turn on mentions globally, or allow change review and mentions on public repositories.

**Assistant Coding Admin**, granted to Admin by default, also manages global coding settings and integrations. No coding role grants access to another user’s private conversations or credentials.

Connecting a GitHub App installation verifies ownership with the connecting user’s linked GitHub account. Users with `grafana-assistant-app.github:write` can link their own GitHub account without `grafana-assistant-app.chats:access`, so **Connect GitHub** works for Coding Admins who can’t use Assistant chat. The same permission lets them unlink their account.

Change reviews read Grafana with the stack’s service account. The **Assistant Admin** role includes `grafana-assistant-app.github.reviews:read`, which lets an administrator open the full run of any published review from the **Details** link on its GitHub Check. The run shows each step, each tool call, and the Grafana data the review read, which can include data that the administrator’s own Grafana permissions don’t cover. This permission grants read access only. Other users who follow the link see a permission error.

To restrict coding while preserving chat, remove `grafana-assistant-app.coding:execute` from the relevant basic-role permissions and assign Coding User to the intended users or teams. Grafana permissions are additive: removing one assignment does not revoke a permission still granted by another role or team. Refer to [Manage RBAC roles](https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/manage-rbac-roles/).

Fine-grained delegation requires Grafana Cloud or Grafana Enterprise RBAC. Without it, self-managed Grafana lets Viewer, Editor, and Admin run Managed Sandboxes and reserves repository configuration for Admin.

Disabling coding blocks new work and follow-ups, including queued starts. It doesn’t cancel work that has already started. Settings show global editing controls only to users with the required permissions.

### Delegate Assistant administration

1. Sign in as an organization administrator.
2. Navigate to **Administration &gt; Users and access &gt; Users**.
3. Select the user and open the **Role** picker.
4. Choose **Assistant &gt; Assistant Admin**.
5. Click **Apply**.

Users can hold multiple Assistant roles if they need both investigation access and deployment-wide configuration control.

Read and write permissions for settings are separate. To view SQL table discovery or investigation settings, you need the matching `:read` permission. To change them, you also need the matching `:write` permission. IRM webhook access doesn’t grant access to incident exclusions. If a setting is unavailable, ask your administrator for the permissions listed under [Map permissions to actions](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/privacy-and-security/rbac/#map-permissions-to-actions).

In self-managed deployments that use basic-role compatibility, only organization **Admins** can change Assistant enablement, SQL table discovery, Analyst data warehouse settings, or investigation settings. **Editor** access alone doesn’t permit these changes.

### Control access to conversations

You need `grafana-assistant-app.chats:access` to use Assistant conversations, including shared conversations. This permission lets you manage your own chats. It doesn’t grant access to another user’s private chat on its own.

To read another user’s investigation or automation conversation, you need access through the associated resource. Refer to [Investigation access](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/privacy-and-security/rbac/#control-access-to-investigations) and [Automation access](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/privacy-and-security/rbac/#control-access-to-automations) for the required permissions and visibility rules.

### Control access to investigations

Investigations use per-investigation visibility for normal access and an explicit tenant-wide permission for administration.

Expand table

| Permission                                         | Access                                                                                              |
|----------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| `grafana-assistant-app.investigations:read`        | View investigations you can access: your own and ones scoped to your Grafana teams.                 |
| `grafana-assistant-app.investigations:create`      | Launch investigations.                                                                              |
| `grafana-assistant-app.investigations.system:read` | View system-created investigations from IRM webhooks, alerts, and incidents.                        |
| `grafana-assistant-app.investigations.all:read`    | View every investigation in the stack, including another user’s private investigation and its chat. |

The **Assistant Admin** role includes `grafana-assistant-app.investigations.all:read`, which lets an administrator view every investigation in the stack, including another user’s private investigation and the chat that backs it. This permission grants read access only. It doesn’t let an administrator change an investigation’s team scope, pause or resume it, record hypothesis verdicts, or share it. Those actions still require the investigation’s creator or the appropriate role.

### Control access to automations

Automations use scoped permissions for normal access and explicit tenant-wide permissions for administration.

Expand table

| Permission                                        | Access                                                                                                                                                             |
|---------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `grafana-assistant-app.automations.user:read`     | View personal automations owned by the caller.                                                                                                                     |
| `grafana-assistant-app.automations.user:create`   | Create and manually run personal automations owned by the caller.                                                                                                  |
| `grafana-assistant-app.automations.user:write`    | Edit, enable, and disable personal automations owned by the caller.                                                                                                |
| `grafana-assistant-app.automations.user:delete`   | Delete personal automations owned by the caller.                                                                                                                   |
| `grafana-assistant-app.automations.tenant:read`   | View automations shared with everybody in the stack.                                                                                                               |
| `grafana-assistant-app.automations.tenant:create` | Create and manually run automations shared with everybody in the stack.                                                                                            |
| `grafana-assistant-app.automations.tenant:write`  | Edit, enable, and disable automations shared with everybody in the stack.                                                                                          |
| `grafana-assistant-app.automations.tenant:delete` | Delete automations shared with everybody in the stack.                                                                                                             |
| `grafana-assistant-app.automations:read`          | View every automation in the stack, including another user’s private automation.                                                                                   |
| `grafana-assistant-app.automations:write`         | Edit automations across owners and visibility scopes, including their enabled state. Service-account automations also require the Grafana organization Admin role. |

The **Assistant Admin** role includes both tenant-wide permissions and all scoped automation permissions. Creating or editing an automation that runs as the Assistant service account also requires the **Grafana organization Admin** role; **Assistant Admin** alone is insufficient. Such an automation must use **Everybody** visibility. Every invocation uses the existing Assistant tenant service account and the organization’s system-initiated token pool. Tenant-wide read and write don’t expose another user’s private run history or grant permission to run or delete that user’s private automation. The UI labels these automations **Private**, shows their creator, and records the last editor when an administrator changes one.

### Control access to Pages

Pages requires its own permissions in addition to access to the Assistant plugin. Grant the actions needed for each person’s work through Grafana RBAC. For role assignment and custom roles, refer to [Manage RBAC roles](https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/access-control/manage-rbac-roles/).

Expand table

| Permission                                   | Access                                                                                                                |
|----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|
| `assistant.ext.grafana.app/pages:get`        | Read pages you can access and their published version history.                                                        |
| `assistant.ext.grafana.app/pages:create`     | Create pages, remix pages you can read, and publish new pages.                                                        |
| `assistant.ext.grafana.app/pages:update`     | Update pages you can edit, change their details or sharing, and restore published versions.                           |
| `assistant.ext.grafana.app/pages:delete`     | Unpublish pages you can manage.                                                                                       |
| `grafana-assistant-app.settings.pages:read`  | Load the network access policy when viewing or authoring pages, and view **Settings &gt; Pages &gt; Network access**. |
| `grafana-assistant-app.settings.pages:write` | Change the stack-wide allowed origins and whether authors can approve extra origins for individual pages.             |
| `grafana-assistant-app.page-comments:read`   | Read comment threads on pages you can open.                                                                           |
| `grafana-assistant-app.page-comments:create` | Comment on pages you can open, and reply to their comments.                                                           |
| `grafana-assistant-app.page-comments:write`  | Resolve and reopen comment threads on pages you can open.                                                             |
| `grafana-assistant-app.page-comments:delete` | Delete your own comments on pages you can open. Deleting a thread’s first comment deletes its replies.                |

These permissions don’t imply one another. Readers need `pages:get` and `grafana-assistant-app.settings.pages:read` to load the page and its network access policy. To create and refine pages through Assistant, also grant `pages:create`, `pages:update`, and `grafana-assistant-app.chats:access`. **Edit page** on an existing publication also requires both create and update permissions because editing starts in a new conversation. To configure network access through settings, grant both Pages settings read and write permissions. All these workflows require `plugins.app:access` scoped to `plugins:id:grafana-assistant-app`.

Comment permissions apply only to pages you can open, and anonymous viewers can’t read or write comments. The built-in Assistant roles include all four comment permissions.

The built-in Assistant roles include Pages settings read access. Include it in custom roles for page readers and authors too. Without it, pages block direct connections beyond Grafana and its asset CDNs, even when the stack or page allows additional origins.

Pages permissions don’t replace folder access or sharing restrictions. Folder pages require folder view access to read and folder edit access to publish or manage. An unlisted page requires access through its sharing settings, and only its author can update its content, change its sharing, restore a version, or unpublish it. The author still needs the matching Pages permission.

Reading a shared page doesn’t grant access to its author’s conversation, data sources, or external accounts. Live queries and external account actions use the reader’s access. Published previews can show data captured with the publisher’s access, so review the audience before publishing. For the workflows and network controls, refer to [Grafana Pages](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/platform/pages).

### Control access to skills

Skills use separate permissions for personal and deployment-wide scope.

Expand table

| Permission                                   | Access                                                  |
|----------------------------------------------|---------------------------------------------------------|
| `grafana-assistant-app.skills.user:read`     | View **Just me** skills owned by the caller.            |
| `grafana-assistant-app.skills.user:create`   | Create **Just me** skills owned by the caller.          |
| `grafana-assistant-app.skills.user:write`    | Edit **Just me** skills owned by the caller.            |
| `grafana-assistant-app.skills.user:delete`   | Delete **Just me** skills owned by the caller.          |
| `grafana-assistant-app.skills.tenant:read`   | View **Everybody** skills shared with the deployment.   |
| `grafana-assistant-app.skills.tenant:create` | Create **Everybody** skills shared with the deployment. |
| `grafana-assistant-app.skills.tenant:write`  | Edit **Everybody** skills shared with the deployment.   |
| `grafana-assistant-app.skills.tenant:delete` | Delete **Everybody** skills shared with the deployment. |

Users with **Assistant User** can create, edit, and delete their own **Just me** skills. Users with **Assistant Admin** can also create, edit, and delete **Everybody** skills for the deployment. Users who don’t have deployment-wide skill permissions can still view shared skills, but they can’t modify them.

### Control access to usage analytics and limits

The **AI &gt; Usage** page is gated by the `grafana-assistant-app.usage:read` permission. Editing limits from that page requires `grafana-assistant-app.usage:write`.

By default, these permissions are included in the **Assistant Admin** role. The **Assistant Admin** role is granted to the organization **Admin** basic role by default.

### Enable Grafana Cloud MCP access

Grafana Cloud MCP access is automatically included for users with the **Editor** role or higher. To grant Grafana Cloud MCP access to users without the Editor role:

1. Sign in as an organization administrator.
2. Navigate to **Administration &gt; Users and access &gt; Users**.
3. Select the user and open the **Role** picker.
4. Choose **Assistant &gt; Assistant Cloud MCP User**.
5. Click **Apply**.

Grafana Cloud MCP connections come in three levels of access, and a user can only authorize a level they hold the permission for:

Expand table

| Connection access     | Permission                                      | Included in                  |
|-----------------------|-------------------------------------------------|------------------------------|
| Read                  | `grafana-assistant-app.cloud-mcp:access`        | **Assistant Cloud MCP User** |
| Query any data source | `grafana-assistant-app.cloud-mcp.query:execute` | **Assistant Cloud MCP User** |
| Write                 | `grafana-assistant-app.cloud-mcp.scope:write`   | **Assistant Admin**          |

Read access gives a connection read-only access to what the user can see in Grafana, including queries against read-only data sources such as Prometheus, Loki, Tempo, and Graphite. It doesn’t include queries against SQL data sources, for example, ClickHouse, Snowflake, and Athena, because SQL can change data. Access to query any data source adds those queries. They run as written, so a connection with this access can change data when the data source’s credentials allow it.

To allow users to authorize write-scoped Grafana Cloud MCP connections, add the **Assistant Admin** role. Write access lets a connection create, modify, and delete anything the user can in Grafana, and includes access to query any data source.

When an MCP client asks for access, the authorization page lists each level as a separate checkbox. Users can clear any level they don’t want to grant, and levels they can’t authorize appear unavailable.

For more information, refer to [Grafana Cloud MCP server](https://grafana.com/docs/grafana-cloud/ai-tools/mcp-servers/cloud-mcp/).

### Enable MCP server management

To allow users to configure personal MCP servers without granting full Editor access:

1. Sign in as an organization administrator.
2. Navigate to **Administration &gt; Users and access &gt; Users**.
3. Select the user and open the **Role** picker.
4. Choose **Assistant &gt; Assistant MCP User**.
5. Click **Apply**.

MCP servers configured with **Everybody** scope require deployment-wide MCP permissions, typically the Grafana **Admin** basic role or **Assistant Admin**.

Configuring a personal or shared MCP server to use PDC also requires `grafana-assistant-app.mcps.pdc:write`. This permission is included in **Assistant Admin** by default. The permission is required for all updates to existing MCP servers that use PDC.

### Sandbox secret permissions

When sandbox secrets are enabled, creating, editing, or deleting an organization-wide secret requires a verified human identity, the matching `grafana-assistant-app.sandbox-secrets.tenant:create`, `:write`, or `:delete` action, and the user’s matching Grafana Secrets Manager permissions. Coding roles do not grant those upstream permissions.

Assistant Coding User includes tenant read. Assistant Coding Maintainer and Assistant Coding Admin also include tenant create, write, and delete. Global coding-settings write is not required. Personal sandbox secrets are disabled, including scope conversion and runtime use.

Secret grants belong to the coding roles. Default basic-role assignments retain shared metadata access. Custom roles need the applicable tenant actions.

Repository selection limits which sandbox runs receive a secret. It does not grant repository access. Authorized runs, including system investigations, require tenant secret read before decryption and receive only matching shared secrets.

## Match permissions to resource visibility

Personal and shared read permissions are independent. For rules, skills, suggested prompts, and MCP servers, `user:read` lets you read your own private resources, while `tenant:read` lets you read resources shared with the stack. Lists include only the scopes you can read. Neither grant lets you read another user’s private resources.

For suggested prompts, these permissions are `grafana-assistant-app.quickstarts.user:read` for your private prompts and `grafana-assistant-app.quickstarts.tenant:read` for prompts shared with your stack.

Assistant also needs the matching read permission to use these resources in a conversation. Chat access alone doesn’t grant it. If a shared rule or MCP server isn’t available, ask your administrator to check your shared-resource read permissions. Custom roles need both read grants to use both personal and shared resources.

## Understand memory access control

Assistant respects Grafana’s existing RBAC when accessing memories:

- **Dashboard memory**: Search results are filtered based on your Grafana folder and dashboard permissions. You can only discover and reference dashboards you have access to view.
- **Infrastructure memory**: Semantic search results are filtered by datasource permissions. You can only access infrastructure metrics from datasources you’re authorized to query. If permissions can’t be verified, access is denied by default.

This ensures Assistant never exposes data beyond your existing Grafana permissions.

## Map permissions to actions

Each Assistant role grants a set of permissions. Use the tables below when you need to understand or audit the underlying RBAC settings.

**Core permissions**

Expand table

| Permission                                                | Description                                                                                                                                                               | Scope                              |
|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------|
| `plugins.app:access`                                      | Access the Assistant plugin shell.                                                                                                                                        | `plugins:id:grafana-assistant-app` |
| `grafana-assistant-app.settings.terms:write`              | Manage Assistant enablement and terms settings.                                                                                                                           | n/a                                |
| `grafana-assistant-app.settings.chatops-workspaces:write` | Connect and disconnect the Slack and Microsoft Teams workspaces for the stack.                                                                                            | n/a                                |
| `grafana-assistant-app.settings.sql-discovery:read`       | Read SQL table discovery settings.                                                                                                                                        | n/a                                |
| `grafana-assistant-app.settings.sql-discovery:write`      | Configure SQL table discovery settings.                                                                                                                                   | n/a                                |
| `grafana-assistant-app.settings.investigations:read`      | Read tenant investigation settings, including alert continuation.                                                                                                         | n/a                                |
| `grafana-assistant-app.settings.investigations:write`     | Configure tenant investigation settings, including skipped incident labels and alert continuation.                                                                        | n/a                                |
| `grafana-assistant-app.settings.infra-memory:read`        | List the data sources an infrastructure memory scan can read.                                                                                                             | n/a                                |
| `grafana-assistant-app.settings.infra-memory:write`       | Configure infrastructure memory, including which data sources it scans.                                                                                                   | n/a                                |
| `grafana-assistant-app.infra-memory.scans:create`         | Start an infrastructure memory scan, which replaces existing infrastructure memories when it completes.                                                                   | n/a                                |
| `grafana-assistant-app.settings.chat-retention:read`      | View chat retention settings.                                                                                                                                             | n/a                                |
| `grafana-assistant-app.settings.chat-retention:write`     | Configure the chat retention policy.                                                                                                                                      | n/a                                |
| `grafana-assistant-app.chats:access`                      | Use Assistant chat.                                                                                                                                                       | n/a                                |
| `grafana-assistant-app.tokens:access`                     | Authenticate with the Grafana Assistant CLI.                                                                                                                              | n/a                                |
| `grafana-assistant-app.rules.user:read`                   | Read personal Assistant rules.                                                                                                                                            | n/a                                |
| `grafana-assistant-app.rules.user:create`                 | Create personal Assistant rules.                                                                                                                                          | n/a                                |
| `grafana-assistant-app.rules.user:write`                  | Update personal Assistant rules.                                                                                                                                          | n/a                                |
| `grafana-assistant-app.rules.user:delete`                 | Delete personal Assistant rules.                                                                                                                                          | n/a                                |
| `grafana-assistant-app.rules.tenant:read`                 | Read tenant-level Assistant rules.                                                                                                                                        | n/a                                |
| `grafana-assistant-app.rules.tenant:create`               | Create tenant-level Assistant rules.                                                                                                                                      | n/a                                |
| `grafana-assistant-app.rules.tenant:write`                | Update tenant-level Assistant rules.                                                                                                                                      | n/a                                |
| `grafana-assistant-app.rules.tenant:delete`               | Delete tenant-level Assistant rules.                                                                                                                                      | n/a                                |
| `grafana-assistant-app.mcps.user:read`                    | Read personal MCP servers.                                                                                                                                                | n/a                                |
| `grafana-assistant-app.mcps.user:create`                  | Create personal MCP servers.                                                                                                                                              | n/a                                |
| `grafana-assistant-app.mcps.user:write`                   | Update personal MCP servers.                                                                                                                                              | n/a                                |
| `grafana-assistant-app.mcps.user:delete`                  | Delete personal MCP servers.                                                                                                                                              | n/a                                |
| `grafana-assistant-app.mcps.tenant:read`                  | Read tenant MCP servers.                                                                                                                                                  | n/a                                |
| `grafana-assistant-app.mcps.tenant:create`                | Create tenant MCP servers.                                                                                                                                                | n/a                                |
| `grafana-assistant-app.mcps.tenant:write`                 | Update tenant MCP servers.                                                                                                                                                | n/a                                |
| `grafana-assistant-app.mcps.tenant:delete`                | Delete tenant MCP servers.                                                                                                                                                | n/a                                |
| `grafana-assistant-app.mcps.pdc:write`                    | Configure personal or shared MCP servers that use PDC.                                                                                                                    | n/a                                |
| `grafana-assistant-app.coding:execute`                    | Run Managed Sandboxes and public repository discovery; independent of chat access.                                                                                        | n/a                                |
| `grafana-assistant-app.coding.repositories:write`         | Configure repositories and refresh their environments, with current GitHub write access, and enable or disable Git host repositories.                                     | n/a                                |
| `grafana-assistant-app.github:read`                       | Read GitHub App connection and repository access settings.                                                                                                                | n/a                                |
| `grafana-assistant-app.github:write`                      | Configure GitHub App connection and repository access settings, and link or unlink a personal GitHub account.                                                             | n/a                                |
| `grafana-assistant-app.github.reviews:read`               | View the full run of any published GitHub change review, including each step, tool call, and the Grafana data it read.                                                    | n/a                                |
| `grafana-assistant-app.settings.coding-agents:read`       | Read Managed Sandboxes settings, such as enablement, provider, and approval policy, and Git host connections and their enabled repositories. Credentials aren’t returned. | n/a                                |
| `grafana-assistant-app.settings.coding-agents:write`      | Enable or disable Managed Sandboxes, choose the provider, set the approval policy, and add, change, or remove Git host connections.                                       | n/a                                |
| `grafana-assistant-app.cursor:read`                       | Read whether a Cursor API key is configured. The key isn’t returned.                                                                                                      | n/a                                |
| `grafana-assistant-app.cursor:write`                      | Store, replace, clear, or validate the Cursor API key.                                                                                                                    | n/a                                |
| `grafana-assistant-app.claude:read`                       | Read whether an Anthropic API key is configured for Claude Managed Agents. The key isn’t returned.                                                                        | n/a                                |
| `grafana-assistant-app.claude:write`                      | Store, replace, clear, or validate the Anthropic API key for Claude Managed Agents.                                                                                       | n/a                                |
| `grafana-assistant-app.sandbox:write`                     | View and change Python sandbox settings.                                                                                                                                  | n/a                                |
| `grafana-assistant-app.investigations:read`               | View investigations.                                                                                                                                                      | n/a                                |
| `grafana-assistant-app.investigations:create`             | Launch investigations.                                                                                                                                                    | n/a                                |
| `grafana-assistant-app.investigations.system:read`        | View system-created investigations.                                                                                                                                       | n/a                                |
| `grafana-assistant-app.investigations.all:read`           | View every investigation in the stack, including private investigations and their chats.                                                                                  | n/a                                |
| `grafana-assistant-app.cloud-mcp:access`                  | Connect external AI agents via Grafana Cloud MCP and manage connections.                                                                                                  | n/a                                |
| `grafana-assistant-app.cloud-mcp.query:execute`           | Authorize Grafana Cloud MCP connections with query scope.                                                                                                                 | n/a                                |
| `grafana-assistant-app.cloud-mcp.scope:write`             | Authorize Grafana Cloud MCP connections with write scope.                                                                                                                 | n/a                                |
| `grafana-assistant-app.skills.user:read`                  | Read personal skills.                                                                                                                                                     | n/a                                |
| `grafana-assistant-app.skills.user:create`                | Create personal skills.                                                                                                                                                   | n/a                                |
| `grafana-assistant-app.skills.user:write`                 | Update personal skills.                                                                                                                                                   | n/a                                |
| `grafana-assistant-app.skills.user:delete`                | Delete personal skills.                                                                                                                                                   | n/a                                |
| `grafana-assistant-app.skills.tenant:read`                | Read deployment-wide shared skills.                                                                                                                                       | n/a                                |
| `grafana-assistant-app.skills.tenant:create`              | Create deployment-wide shared skills.                                                                                                                                     | n/a                                |
| `grafana-assistant-app.skills.tenant:write`               | Update deployment-wide shared skills.                                                                                                                                     | n/a                                |
| `grafana-assistant-app.skills.tenant:delete`              | Delete deployment-wide shared skills.                                                                                                                                     | n/a                                |
| `grafana-assistant-app.automations.user:read`             | View personal automations owned by the caller.                                                                                                                            | n/a                                |
| `grafana-assistant-app.automations.user:create`           | Create or manually run personal automations owned by the caller.                                                                                                          | n/a                                |
| `grafana-assistant-app.automations.user:write`            | Edit, enable, or disable personal automations owned by the caller.                                                                                                        | n/a                                |
| `grafana-assistant-app.automations.user:delete`           | Delete personal automations owned by the caller.                                                                                                                          | n/a                                |
| `grafana-assistant-app.automations.tenant:read`           | View automations shared with everybody in the stack.                                                                                                                      | n/a                                |
| `grafana-assistant-app.automations.tenant:create`         | Create or manually run automations shared with everybody in the stack.                                                                                                    | n/a                                |
| `grafana-assistant-app.automations.tenant:write`          | Edit, enable, or disable automations shared with everybody in the stack.                                                                                                  | n/a                                |
| `grafana-assistant-app.automations.tenant:delete`         | Delete automations shared with everybody in the stack.                                                                                                                    | n/a                                |
| `grafana-assistant-app.automations:read`                  | View every automation in the stack, including private automations.                                                                                                        | n/a                                |
| `grafana-assistant-app.automations:write`                 | Update every automation in the stack, including private automations.                                                                                                      | n/a                                |
| `grafana-assistant-app.usage:read`                        | View Usage Analytics for the deployment.                                                                                                                                  | n/a                                |
| `grafana-assistant-app.usage:write`                       | Update deployment usage limits.                                                                                                                                           | n/a                                |
| `grafana-assistant-app.tokens.gcx:access`                 | Authorize a GCX CLI connection to Grafana (`gcx login`). Granted to Viewer by default.                                                                                    | n/a                                |
| `grafana-assistant-app.watcher-agents:read`               | View Assistant Watchers.                                                                                                                                                  | n/a                                |
| `grafana-assistant-app.watcher-agents:create`             | Create Assistant Watchers and run an existing Watcher immediately.                                                                                                        | n/a                                |
| `grafana-assistant-app.watcher-agents:write`              | Update, calibrate, start, and pause Assistant Watchers.                                                                                                                   | n/a                                |
| `grafana-assistant-app.watcher-agents:delete`             | Delete Assistant Watchers.                                                                                                                                                | n/a                                |

**Actions and required permissions**

Expand table

| Assistant action                                     | Required permissions (all)                                                                                                                             |
|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| Enable Assistant or manage terms                     | `grafana-assistant-app.settings.terms:write`, `plugins.app:access`                                                                                     |
| Connect or disconnect Slack or Microsoft Teams       | `grafana-assistant-app.settings.chatops-workspaces:write`, `grafana-assistant-app.chats:access`, `plugins.app:access`                                  |
| Configure SQL table discovery                        | `grafana-assistant-app.settings.sql-discovery:write`, `grafana-assistant-app.settings.sql-discovery:read`, `plugins.app:access`                        |
| Configure investigation settings                     | `grafana-assistant-app.settings.investigations:write`, `grafana-assistant-app.settings.investigations:read`, `plugins.app:access`                      |
| Configure infrastructure memory                      | `grafana-assistant-app.settings.infra-memory:write`, `grafana-assistant-app.settings.infra-memory:read`, `plugins.app:access`                          |
| Start an infrastructure memory scan                  | `grafana-assistant-app.infra-memory.scans:create`, `plugins.app:access`                                                                                |
| Configure chat retention                             | `grafana-assistant-app.settings.chat-retention:write`, `grafana-assistant-app.settings.chat-retention:read`, `plugins.app:access`                      |
| Use Assistant chat                                   | `grafana-assistant-app.chats:access`, `plugins.app:access`                                                                                             |
| Authenticate with the CLI                            | `grafana-assistant-app.tokens:access`, `plugins.app:access`                                                                                            |
| Manage personal rules                                | `grafana-assistant-app.rules.user:*`, `grafana-assistant-app.chats:access`, `plugins.app:access`                                                       |
| Manage personal MCP servers                          | `grafana-assistant-app.mcps.user:*`, `grafana-assistant-app.chats:access`, `plugins.app:access`                                                        |
| Manage tenant rules                                  | `grafana-assistant-app.rules.tenant:*`, `grafana-assistant-app.chats:access`, `plugins.app:access`                                                     |
| Manage tenant MCP servers                            | `grafana-assistant-app.mcps.tenant:*`, `grafana-assistant-app.chats:access`, `plugins.app:access`                                                      |
| View GitHub App access                               | `grafana-assistant-app.github:read`, `plugins.app:access`                                                                                              |
| Configure GitHub App access                          | `grafana-assistant-app.github:write`, `grafana-assistant-app.github:read`, `plugins.app:access`                                                        |
| View a GitHub change review run                      | `grafana-assistant-app.github.reviews:read`, `grafana-assistant-app.chats:access`, `plugins.app:access`                                                |
| View Git host connections                            | `grafana-assistant-app.settings.coding-agents:read`, `plugins.app:access`                                                                              |
| Configure Git host connections                       | `grafana-assistant-app.settings.coding-agents:write`, `grafana-assistant-app.settings.coding-agents:read`, `plugins.app:access`                        |
| View Managed Sandboxes settings                      | `grafana-assistant-app.settings.coding-agents:read`, `plugins.app:access`                                                                              |
| Configure Managed Sandboxes settings                 | `grafana-assistant-app.settings.coding-agents:write`, `plugins.app:access`                                                                             |
| Configure the Cursor API key                         | `grafana-assistant-app.cursor:write`, `plugins.app:access`                                                                                             |
| List Cursor models                                   | `grafana-assistant-app.settings.coding-agents:write`, `grafana-assistant-app.cursor:read`, `plugins.app:access`                                        |
| Configure the Anthropic API key                      | `grafana-assistant-app.claude:write`, `plugins.app:access`                                                                                             |
| List Claude models                                   | `grafana-assistant-app.settings.coding-agents:write`, `grafana-assistant-app.claude:read`, `plugins.app:access`                                        |
| Manage Python sandbox settings                       | `grafana-assistant-app.sandbox:write`, `plugins.app:access`                                                                                            |
| Use investigations                                   | `grafana-assistant-app.investigations:read`, `grafana-assistant-app.investigations:create`, `grafana-assistant-app.chats:access`, `plugins.app:access` |
| View system-created investigations                   | `grafana-assistant-app.investigations.system:read`, `grafana-assistant-app.investigations:read`, `plugins.app:access`                                  |
| View every investigation                             | `grafana-assistant-app.investigations.all:read`, `grafana-assistant-app.investigations:read`, `plugins.app:access`                                     |
| Manage personal skills                               | `grafana-assistant-app.skills.user:*`, `grafana-assistant-app.chats:access`, `plugins.app:access`                                                      |
| Manage tenant-wide skills                            | `grafana-assistant-app.skills.tenant:*`, `grafana-assistant-app.chats:access`, `plugins.app:access`                                                    |
| View personal automations                            | `grafana-assistant-app.automations.user:read`, `plugins.app:access`                                                                                    |
| Create or manually run personal automations          | `grafana-assistant-app.automations.user:create`, `plugins.app:access`                                                                                  |
| Edit, enable, or disable personal automations        | `grafana-assistant-app.automations.user:write`, `plugins.app:access`                                                                                   |
| Delete personal automations                          | `grafana-assistant-app.automations.user:delete`, `plugins.app:access`                                                                                  |
| View automations shared with everybody               | `grafana-assistant-app.automations.tenant:read`, `plugins.app:access`                                                                                  |
| Create or manually run shared automations            | `grafana-assistant-app.automations.tenant:create`, `plugins.app:access`                                                                                |
| Edit, enable, or disable shared automations          | `grafana-assistant-app.automations.tenant:write`, `plugins.app:access`                                                                                 |
| Delete automations shared with everybody             | `grafana-assistant-app.automations.tenant:delete`, `plugins.app:access`                                                                                |
| View and edit every automation                       | `grafana-assistant-app.automations:read`, `grafana-assistant-app.automations:write`, `plugins.app:access`                                              |
| Manage Assistant Watchers                            | `grafana-assistant-app.watcher-agents:*`, `plugins.app:access`                                                                                         |
| View Watcher usage limits                            | `grafana-assistant-app.watcher-agents:read`, `plugins.app:access`                                                                                      |
| View Usage Analytics dashboard                       | `grafana-assistant-app.usage:read`, `plugins.app:access`                                                                                               |
| Configure usage limits                               | `grafana-assistant-app.usage:write`, `grafana-assistant-app.usage:read`, `plugins.app:access`                                                          |
| Connect via Grafana Cloud MCP                        | `grafana-assistant-app.cloud-mcp:access`, `plugins.app:access`                                                                                         |
| Authorize query-scoped Grafana Cloud MCP connections | `grafana-assistant-app.cloud-mcp.query:execute`, `grafana-assistant-app.cloud-mcp:access`, `plugins.app:access`                                        |
| Authorize write-scoped Grafana Cloud MCP connections | `grafana-assistant-app.cloud-mcp.scope:write`, `grafana-assistant-app.cloud-mcp:access`, `plugins.app:access`                                          |
| Authorize a GCX CLI connection (`gcx login`)         | `grafana-assistant-app.tokens.gcx:access`, `plugins.app:access`                                                                                        |

Permissions with a `*` suffix mean the role needs read, create, write, and delete access for that feature area.

## Next steps

- Review [Manage your data privacy and security](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/privacy-and-security) to understand data handling, third-party providers, security measures, and access controls.
- Review [Pricing and limits](https://grafana.com/docs/grafana-cloud/platform/grafana-assistant/pricing) to understand projected costs and limits.
