# Funções personalizadas

## Overview

**Funções Personalizadas** é um recurso opcional no RealmJoin Portal e permite criar funções internas adicionais do RealmJoin. Você pode atribuir permissões granulares / atômicas a essas funções e vinculá-las a grupos do Entra ou a usuários dedicados.

{% hint style="info" %}
Se forem necessárias funções personalizadas, por favor **solicite a ativação via suporte do RealmJoin**.
{% endhint %}

As Funções Personalizadas são definidas como JSON. O editor JSON incluído no RealmJoin Portal oferece verificação de sintaxe e realce e validará a sua definição em relação ao esquema JSON de Funções Personalizadas.

<figure><img src="/files/501a7df48fa8d7f253480dd5e568a7ce4a32e74d" alt=""><figcaption><p>Editor JSON de Funções Personalizadas</p></figcaption></figure>

## Usando o editor

### Verificação de sintaxe / Erros

O editor verificará a sintaxe enquanto você digita. Se um erro de sintaxe for detectado, uma mensagem de erro **Ver x erros** e um ícone de bug aparecerão ao lado de **Salvar.**

<figure><img src="/files/83ab5feac089b457daa5c5a1dcd08ac73e834b09" alt=""><figcaption><p>Mensagem/botão de erro JSON</p></figcaption></figure>

Clique nesta mensagem para obter mais detalhes sobre o erro.

### Formatação

Você pode formatar automaticamente o JSON clicando em **Formatar** no canto superior direito da página.

<figure><img src="/files/79714aae555edf96ff3186b2bdc6709d2fcbc58f" alt=""><figcaption><p>Botão Format</p></figcaption></figure>

### Autocompletar

O Editor pode oferecer Autocompletar para palavras-chave conhecidas (como permissões) a partir do esquema.

<figure><img src="/files/c587843f45a8dcf2916e77c81531d0d685ed0b69" alt=""><figcaption><p>Autocompletar de palavras-chave</p></figcaption></figure>

Você pode pressionar "Ctrl" + "Space" a qualquer momento para acionar o Autocompletar.

## Regras

Uma função é descrita como um par de permissões e usuários e/ou grupos aos quais essas permissões são concedidas.

As funções são listadas como parte de uma matriz (lista) sob a palavra-chave **Regras**.

Exemplo de conjunto de regras:

```json
{
  "Rules": [
    {
      "Name": "Padrão: Os apoiadores podem alterar o usuário principal [27e589a7]",
      "Description": "Regra padrão para permitir que membros de um grupo de Apoiadores alterem o usuário principal dos dispositivos vinculados ao RealmJoin. Mantenha o ID incluído no nome.",
      "Groups": [
        "f31f5765-f56f-47fa-9248-ac2d77221634",
        "422e6b7c-bd99-4082-be1c-88cbc2bb2734"
      ],
      "Permissions": [
        "CanChangeRealmJoinPrimaryUser"
      ]
    },{
      "Name": "Permitir que John adicione novos Formulários de Autoatendimento",
      "Users": [
        "b31f5765-f56f-47fa-9248-ac2d77221622"
      ],
      "Permissions": [
        "CanAddSelfServiceForms"
      ]
    }
  ]
}
```

### Nome e Descrição

**Nome** é obrigatório, **Descrição** é opcional.

Ambos são campos de texto simples (string).

### Permissões

Uma permissão é uma string exclusiva que identifica uma determinada ação no RealmJoin Portal. **Permissões** é uma lista (array) de permissões.

Ver [Permissões disponíveis](/pt/definicoes-do-realmjoin/permission/custom-roles/available-permissions.md) para uma lista e descrição das permissões comuns.

### Grupos

Uma lista (array) de IDs de objeto de grupo do Entra. Será atribuída [permissões](#permissions) a todos os usuários que sejam membros desses grupos.

### Utilizadores

Uma lista (array) de IDs de objeto de usuário do Entra. Será atribuída [permissões](#permissions) a esses usuários.


---

# Agent Instructions: 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:

```
GET https://docs.realmjoin.com/pt/definicoes-do-realmjoin/permission/custom-roles.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
