> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/product-docs/product-guide/configuracoes/rmm/rbac-e-grupos.md).

# RBAC e Grupos de Permissão

Modelo de acesso granular: **46 chaves de permissão** organizadas em grupos temáticos. Cada usuário é atribuído a um único **grupo de permissão** que agrega o que ele pode ver e fazer.

Aberta em `/permission-groups`.

## Presets prontos

Todo tenant novo recebe **5 grupos pré-configurados** ao abrir a página pela primeira vez:

| Preset        | Perfil típico                | O que pode                                                                                                         |
| ------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Admin**     | Fundador / TI sênior         | Tudo, sem exceção                                                                                                  |
| **Operator**  | Analista de fleet            | Operar devices, aplicar policies, ver relatórios. **Não pode**: wipe, editar billing, criar grupos, configurar SSO |
| **Read-only** | Stakeholder / auditor casual | Só `*.view` — inclui `finance.view`, `trust_score.view`                                                            |
| **Help Desk** | Suporte N1                   | Unlock, reset senha, remote view, reboot. Não edita policy, não remove device                                      |
| **Auditor**   | Compliance / SOX             | View completo + compliance + audit log + export. Nunca muta                                                        |

Grupos deletados podem ser recriados a qualquer momento com o botão **"Reset defaults"** — ele só reinsere os que estão faltando, **não sobrescreve customizações**.

## Como as permissões estão organizadas

| Grupo            | Chaves principais                                                                                                                                                                                        |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Dashboard**    | dashboard.view · reports.view · reports.export · trust\_score.view · finance.view · finance.manage                                                                                                       |
| **Devices**      | devices.view / enroll / edit / remove / lock / reboot / reset\_password / wipe / lost\_mode / bulk\_command / remote\_access / broadcast · app\_inventory.view · customfields.view · customfields.manage |
| **Policies**     | policies.view / create / edit / delete / assign / rollback · managed\_play.view · managed\_play.manage                                                                                                   |
| **Perimeter**    | geofences.manage · alerts.view · alerts.manage · autoremediation.manage                                                                                                                                  |
| **Compliance**   | compliance.view · compliance.generate · lgpd.view · lgpd.export · lgpd.forget · approvals.decide                                                                                                         |
| **Platform**     | users.view · users.manage · groups.manage · sessions.manage\_others · sso.manage · apikeys.view · apikeys.manage · branding.manage · smtp.manage · customdomain.manage · settings.manage                 |
| **Integrations** | scheduled\_reports.view / manage · integrations.view · integrations.manage · marketplace.view · marketplace.request · saved\_filters.manage                                                              |

## Access schedule por grupo

Cada grupo pode ter uma **janela de horário permitido** — dias da semana + hora inicial + hora final. Fora da janela, o login é bloqueado com código `OUTSIDE_ACCESS_WINDOW`.

Exemplo: Help Desk N1 só pode logar **seg-sex, 08:00-18:00, GMT-3**.

Sessão já ativa mantém acesso (não é kill-switch imediato).

## Conditional Access por grupo

Extensão do access schedule com verificações finas:

* Allowlist / blocklist de IP (CIDR ou IP puro)
* Allowlist / blocklist de país
* Trust Score mínimo do device
* Obrigar MFA

Ver [Security & Conditional Access](/product-docs/product-guide/configuracoes/rmm/security.md).

## Cascata de decisão em cada requisição

Quando o usuário abre uma tela ou clica num botão, o RMM checa **em ordem**:

1. **Autenticação**: o cookie de sessão / API key é válido?
2. **Access schedule** do grupo: estamos na janela permitida?
3. **Conditional Access** do grupo: IP / país / trust band / MFA batem?
4. **Permissão específica**: o grupo tem a chave que essa rota exige? (Ex.: apagar policy exige `policies.delete`)

Cada checagem tem código de erro específico — o usuário vê **exatamente** por que foi bloqueado, sem ficar tentando adivinhar.

## Atribuir usuário a grupo

Em `/users`, cada linha tem um dropdown com os grupos disponíveis. Salvar aplica imediatamente (a próxima requisição do usuário já usa o novo grupo).

Sem grupo atribuído + usuário legado com `role='admin'`: ainda funciona (grandfather clause). Sem grupo E sem role: bloqueado com `NO_GROUP_ASSIGNED`.

## Auditoria

Todo `PERMISSION_DENIED` é gravado no Audit Log com o usuário, permissão exigida e endpoint. Útil pra descobrir grupos mal configurados no dia-a-dia.
