> For the complete documentation index, see [llms.txt](https://docs.autentique.com.br/api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.autentique.com.br/api/2/mutations/criando-pastas/compartilhamento-de-pasta.md).

# Compartilhamento de pasta

Use `shareFolder` para compartilhar uma pasta com usuários ou grupos. Cada compartilhamento pode conceder permissão de visualização ou edição.

```graphql
mutation ShareFolder(
  $folderId: String!
  $shares: [ShareFolderInput]
  $emailMessage: String
) {
  shareFolder(
    folder_id: $folderId
    shares: $shares
    email_message: $emailMessage
  ) {
    id
    name
    shares {
      id
      role
      is_by_link
      user {
        id
        name
        email
      }
      group {
        id
        name
      }
    }
  }
}
```

Variáveis para compartilhar com um usuário:

```json
{
  "folderId": "ID_DA_PASTA",
  "shares": [
    {
      "email": "usuario@exemplo.com",
      "role": "VIEWER"
    },
    {
      "group_id": "abc123",
      "role": "EDITOR"
    }
  ],
  "emailMessage": "Compartilhei esta pasta com você."
}
```

Para compartilhar com um grupo, envie `group_id` no lugar de `email`.

Os valores disponíveis para `role` são:

<table><thead><tr><th width="167.36328125">Valor</th><th>Permissão</th></tr></thead><tbody><tr><td><code>VIEWER</code></td><td>Permite visualizar o conteúdo da pasta. É o valor padrão.</td></tr><tr><td><code>EDITOR</code></td><td>Permite editar e gerenciar o conteúdo da pasta.</td></tr></tbody></table>

### Atualizando um compartilhamento

Use `updateSharing` para alterar uma permissão existente ou configurar o compartilhamento por link.

```graphql
mutation UpdateFolderSharing(
  $folderId: String!
  $sharingId: String
  $role: FolderRoleEnum
  $shareByLink: Boolean
  $password: String
  $removePassword: Boolean
) {
  updateSharing(
    folder_id: $folderId
    sharing_id: $sharingId
    role: $role
    share_by_link: $shareByLink
    password: $password
    remove_password: $removePassword
  ) {
    id
    name
    link_identifier
    has_password
    shares {
      id
      role
      is_by_link
    }
  }
}
```

Variáveis para alterar uma permissão:

```json
{
  "folderId": "ID_DA_PASTA",
  "sharingId": "ID_DO_COMPARTILHAMENTO",
  "role": "EDITOR"
}
```

Variáveis para habilitar o compartilhamento por link com senha:

```json
{
  "folderId": "ID_DA_PASTA",
  "shareByLink": true,
  "password": "SENHA_DO_LINK"
}
```

Para remover a senha, envie `removePassword` como `true`. Evite enviar `password` e `removePassword` ao mesmo tempo, pois são ações opostas.
