> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Integração com Mendeley

> Permita que os usuários importem um arquivo .bib da sua biblioteca do Mendeley em uma implantação no Kubernetes.

A importação do Mendeley é executada no serviço **web** (o módulo `tpr-webmodule`) de cada pod do Ayakaleaf Pro. Registre o aplicativo do Mendeley como em [Integração com Mendeley](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/overleaf-toolkit/integrations/mendeley-integration.md), com a URL de redirecionamento `${OVERLEAF_SITE_URL}/user/mendeley/oauth/callback`, e depois configure o Kubernetes como abaixo.

| | |
| - | - |
| Serviço | web, em cada pod do Ayakaleaf Pro; lido quando o web é iniciado |
| Pod → Mendeley | `https://api.mendeley.com` (token OAuth e API), quando um usuário vincula o Mendeley ou importa ou atualiza um arquivo |
| Navegador → Mendeley | `https://api.mendeley.com/oauth/authorize` e, em seguida, de volta para a URL de redirecionamento |
| Mendeley → Overleaf | nenhum: a instância não precisa estar acessível pela internet |
| Dados armazenados | os tokens do Mendeley do usuário, criptografados, no MongoDB |
| Tarefas periódicas | nenhuma: um arquivo só é atualizado quando um usuário solicita |

### Configuração

**1. ConfigMap**

```yaml title="30-config.yaml (changes)" theme={null}
  ENABLED_LINKED_FILE_TYPES: project_file,project_output_file,url,mendeley
  MENDELEY_CLIENT_ID: "<application ID>"
  # optional: send the module's requests to Mendeley through an HTTP proxy
  # MENDELEY_PROXY_URL: http://proxy.example.com:3128
```

Coloque o ID do aplicativo entre aspas: ele é um número, e um ConfigMap só armazena strings. `ENABLED_LINKED_FILE_TYPES` substitui o valor da instalação; mantenha os tipos que você já tem e adicione `mendeley` (e `zotero`, se usar ambos).

**2. Secret**

```bash theme={null}
kubectl -n overleaf patch secret overleaf-secrets --type merge -p '{"stringData":{
  "MENDELEY_CLIENT_SECRET":"<secret>",
  "MENDELEY_CIPHER_PASSWORD":"'"$(openssl rand -hex 32)"'"}}'
```

`MENDELEY_CIPHER_PASSWORD` criptografa os tokens do Mendeley dos usuários no MongoDB. Sem ele, cada pod gera um arquivo de chave no seu próprio `/var/lib/overleaf/data`. Com [várias réplicas](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/horizontal-scaling.md), cada nó passa a ter uma chave diferente, e um usuário atendido por outra réplica não consegue usar sua conta do Mendeley vinculada. Defina-o antes que o primeiro usuário vincule o Mendeley: alterá-lo depois faz com que todos os usuários precisem vincular o Mendeley novamente.

**3. Aplicar e reiniciar**

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

### Várias réplicas

Defina `MENDELEY_CIPHER_PASSWORD` no Secret, veja acima. Os tokens do Mendeley são criptografados pelo mesmo código que as chaves do Zotero: sem a senha, um arquivo importado em uma réplica não pode ser atualizado em outra, como vimos com o [Zotero](https://ayakaleaf-pro.mintlify.site/pt/on-premises/configuration/kubernetes/integrations/zotero-integration.md#várias-réplicas). O `state` do OAuth é mantido na sessão no Redis, então o callback pode chegar a qualquer réplica.

### Testado no Kubernetes

Contra um mock do api.mendeley.com (confiável por meio de `NODE_EXTRA_CA_CERTS` a partir de `overleaf-certs`), no Kubernetes 1.37 com três réplicas atrás do HAProxy, nossos testes ponta a ponta do Mendeley são aprovados (18 casos): vincular via OAuth 2.0 e desvincular, importar a biblioteca e os grupos para um arquivo `.bib`, atualizá-lo, renovar um token de acesso prestes a expirar, tokens revogados, solicitação para vincular novamente, referências pesquisáveis pelos colaboradores, somente quem importou pode atualizar, erros da API e conexões lentas com o Mendeley.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.