> ## 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.

# Integración con Mendeley

> Permite a los usuarios importar un archivo .bib desde su biblioteca de Mendeley en un despliegue de Kubernetes.

La importación de Mendeley se ejecuta en el servicio **web** (el módulo `tpr-webmodule`) de cada pod de Ayakaleaf Pro. Registra la aplicación de Mendeley como se indica en [Integración con Mendeley](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/overleaf-toolkit/integrations/mendeley-integration.md), con la URL de redirección `${OVERLEAF_SITE_URL}/user/mendeley/oauth/callback`, y después configura Kubernetes como se describe a continuación.

| | |
| - | - |
| Servicio | web, en cada pod de Ayakaleaf Pro; se lee cuando web arranca |
| Pod → Mendeley | `https://api.mendeley.com` (token OAuth y API), cuando un usuario vincula Mendeley o importa o actualiza un archivo |
| Navegador → Mendeley | `https://api.mendeley.com/oauth/authorize` y, después, de vuelta a la URL de redirección |
| Mendeley → Overleaf | ninguno: la instancia no necesita ser accesible desde internet |
| Datos almacenados | los tokens de Mendeley del usuario, cifrados, en MongoDB |
| Tareas periódicas | ninguna: un archivo solo se actualiza cuando un usuario lo solicita |

### Configuración

**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
```

Pon el ID de la aplicación entre comillas: es un número, y un ConfigMap solo contiene cadenas. `ENABLED_LINKED_FILE_TYPES` sustituye el valor de la instalación; conserva los tipos que ya tienes y añade `mendeley` (y `zotero`, si usas 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` cifra los tokens de Mendeley de los usuarios en MongoDB. Sin él, cada pod genera un archivo de clave en su propio `/var/lib/overleaf/data`. Con [varias réplicas](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/kubernetes/horizontal-scaling.md), cada nodo tiene entonces una clave distinta, y un usuario atendido por otra réplica no puede usar su cuenta de Mendeley vinculada. Establécelo antes de que el primer usuario vincule Mendeley: cambiarlo más adelante obliga a todos los usuarios a vincular Mendeley de nuevo.

**3. Aplicar y reiniciar**

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

### Varias réplicas

Establece `MENDELEY_CIPHER_PASSWORD` en el Secret, como se indica arriba. Los tokens de Mendeley se cifran con el mismo código que las claves de Zotero: sin la contraseña, un archivo importado en una réplica no se puede actualizar en otra, como vimos con [Zotero](https://ayakaleaf-pro.mintlify.site/es/on-premises/configuration/kubernetes/integrations/zotero-integration.md#several-replicas). El `state` de OAuth se guarda en la sesión en Redis, por lo que la llamada de retorno puede llegar a cualquier réplica.

### Probado en Kubernetes

Contra un simulacro de api.mendeley.com (de confianza a través de `NODE_EXTRA_CA_CERTS` desde `overleaf-certs`), en Kubernetes 1.37 con tres réplicas detrás de HAProxy, nuestras pruebas de extremo a extremo de Mendeley se superan (18 casos): vincular mediante OAuth 2.0 y desvincular, importar la biblioteca y los grupos en un archivo `.bib`, actualizarlo, actualizar un token de acceso que caduca, tokens revocados, solicitar que se vuelva a vincular, referencias que los colaboradores pueden buscar, que solo quien importó pueda actualizar, errores de la API y conexiones lentas con Mendeley.


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