> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryprofound.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Permisos y seguridad

> Alcances de OAuth, qué puede y qué no puede acceder Profound en Drive, y cómo almacena, sincroniza y elimina tus tokens y archivos

Profound usa la conexión con Google Drive en [Knowledge Bases](https://help.tryprofound.com/articles/5775538586-knowledge-bases-overview) y en [Agents](https://help.tryprofound.com/articles/9762251986-agents-overview). Cada solicitud se ejecuta con el token del usuario conectado, y cada solicitud verifica primero que la conexión pertenezca a la organización del usuario que la realiza y a ese usuario.

## Modelo de conexión

* **Cada usuario conecta su propia cuenta de Google.** La conexión pasa por la [pantalla de consentimiento de OAuth](https://developers.google.com/workspace/guides/configure-oauth-consent) estándar de Google y es privada para el usuario que la inició. Otros usuarios de tu organización de Profound no pueden usar la misma conexión.
* **Sin cuenta de servicio, delegación de todo el dominio ni consentimiento de administrador.** Profound no usa una [cuenta de servicio](https://cloud.google.com/iam/docs/service-account-overview) ni [delegación de todo el dominio](https://support.google.com/a/answer/162106), y un administrador de Workspace no necesita otorgar ningún permiso para que un usuario se conecte. Profound nunca accede a Drive con una identidad distinta a la del usuario conectado, y no puede llegar a nada que ese usuario no pueda abrir.
* **El acceso es más limitado que el acceso del propio usuario.** Profound solicita el alcance `drive.file`, por lo que solo puede leer los archivos que el usuario elige en el [Google Picker](https://developers.google.com/workspace/drive/picker/guides/overview) y los archivos que Profound crea en nombre del usuario. Profound no puede listar, buscar ni leer nada más en el Drive del usuario, ni siquiera archivos que ese usuario puede abrir.

## Alcances de OAuth

<Note>
  La integración de Google Drive de Profound no solicita ningún alcance de Drive [restringido](https://developers.google.com/identity/protocols/oauth2/production-readiness/restricted-scope-verification#understand-restricted-scopes). Consulta [Choose Google Drive API scopes](https://developers.google.com/workspace/drive/api/guides/api-specific-auth) para ver la clasificación de Google de cada alcance de Drive.
</Note>

Profound solicita estos alcances cuando un usuario conecta Google Drive:

| Alcance | [Clasificación de Google](https://developers.google.com/workspace/drive/api/guides/api-specific-auth#drive-scopes) | Por qué lo solicita Profound |
| - | - | - |
| `openid` | No sensible | Devuelve un [token de ID](https://developers.google.com/identity/openid-connect/openid-connect#obtainuserinfo) verificado para que Profound pueda vincular la conexión a una sola cuenta de Google y detectar cuándo un usuario vuelve a conectar la misma cuenta en lugar de crear un duplicado. Profound [valida el token](https://developers.google.com/identity/openid-connect/openid-connect#validatinganidtoken) (firma, audiencia, vencimiento y emisor) antes de usarlo. |
| `https://www.googleapis.com/auth/userinfo.email` | No sensible | Muestra el correo electrónico de la cuenta conectada en Profound, para que puedas ver qué cuenta de Google usa una importación de Knowledge Base o una ejecución de Agent. Obtén más información en la [documentación de alcances de OAuth 2.0](https://developers.google.com/identity/protocols/oauth2/scopes) de Google. |
| `https://www.googleapis.com/auth/drive.file` | No sensible | Otorga acceso por archivo a los archivos que el usuario selecciona en el [Google Picker](https://developers.google.com/workspace/drive/picker/guides/overview) en su navegador y a los archivos que crea Profound. Profound no controla el cuadro de diálogo y solo sabe qué archivos eligió el usuario. Obtén más información en la [documentación de alcances de la API de Drive](https://developers.google.com/workspace/drive/api/guides/api-specific-auth#nonsensitive-scopes) de Google. |

## Flujos de usuario

### Importaciones de Knowledge Base

* Un usuario con acceso de edición a una [Knowledge Base](https://help.tryprofound.com/articles/5775538586-knowledge-bases-overview) selecciona archivos en el Google Picker. Profound recibe el ID, el nombre y el tipo de archivo de cada archivo seleccionado.
* Profound lee los metadatos de cada archivo seleccionado y descarga su contenido. Los Google Docs se exportan como `.docx`, las Google Sheets como `.xlsx`, y las Google Slides y los Drawings como PDF. Los archivos PDF, Word, Excel, de texto sin formato, Markdown y CSV se descargan tal cual. Los archivos de más de 100 MB no se importan.
* Profound resuelve los nombres de las carpetas principales de los archivos seleccionados para poder recrear la estructura de carpetas dentro de la Knowledge Base.

Para abrir el Google Picker, la aplicación web de Profound solicita el token de acceso de la cuenta conectada al backend de Profound y lo pasa a la [biblioteca Picker](https://developers.google.com/workspace/drive/picker/guides/overview) de Google en el navegador del usuario. La respuesta que lleva el token está marcada con `Cache-Control: no-store`.

#### Sincronización automática

Si un usuario activa la [sincronización automática](https://help.tryprofound.com/articles/5775538586-knowledge-bases-overview#content-auto-sync) para una carpeta de Google Drive importada, Profound busca cambios con la frecuencia elegida usando la [Changes API](https://developers.google.com/workspace/drive/api/guides/manage-changes) de Google. En cada ejecución, Profound:

* vuelve a descargar los archivos importados cuyo contenido cambió, y omite aquellos cuyo contenido no ha cambiado
* elimina la copia en la Knowledge Base de un archivo que se eliminó de Drive, o al que Profound ya no puede acceder ni descargar

Profound realiza estas acciones como el usuario que activó la sincronización automática, usando la conexión de ese usuario. La sincronización automática solo hace seguimiento de los archivos que se importaron. No puede ver archivos que el usuario no seleccionó.

### Nodos de Agent

Los nodos de Google Docs, Google Sheets y Google Slides en [Agents](https://help.tryprofound.com/articles/9762251986-agents-overview) usan la misma conexión de Google Drive y el mismo permiso `drive.file`. Los nodos de lectura leen solo los archivos que el usuario seleccionó. Los nodos de creación y escritura (por ejemplo, crear un Google Doc o escribir filas en una Google Sheet) crean archivos nuevos en el Drive del usuario conectado o modifican archivos que el usuario seleccionó.

Los nodos que aceptan un archivo por nombre buscan solo entre los archivos que cubre el permiso `drive.file`, y piden un ID o URL de archivo si el nombre coincide con más de un archivo.

## Operaciones que Profound realiza con la API de Drive

| Operación | API de Drive | Se usa para |
| - | - | - |
| Buscar archivos por nombre, opcionalmente filtrados por tipo | [`files.list`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/list) | Selección de archivos en la configuración de nodos de Agent, resolución de nombres de archivo |
| Leer metadatos de archivos, de forma individual o en lotes | [`files.get`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/get) | Importaciones, sincronización, reconstrucción de rutas de carpetas |
| Listar los elementos secundarios de una carpeta | [`files.list`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/list) | Disponible en el servicio de Drive de Profound. Actualmente no lo usan Knowledge Bases ni los nodos de Agent |
| Descargar o exportar el contenido de archivos | [`files.get`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/get) (media), [`files.export`](https://developers.google.com/workspace/drive/api/reference/rest/v3/files/export), enlaces de exportación | Importaciones, sincronización, nodos de lectura |
| Listar cambios desde la última sincronización | [`changes.getStartPageToken`](https://developers.google.com/workspace/drive/api/reference/rest/v3/changes/getStartPageToken), [`changes.list`](https://developers.google.com/workspace/drive/api/reference/rest/v3/changes/list) | Sincronización automática |

Estas son las únicas operaciones de la API de Drive que realiza la conexión de Google Drive. Las escrituras en Drive ocurren solo a través de los nodos de Agent de Google Docs y Google Sheets.

## Dónde se almacena el contenido importado

Profound almacena solo los archivos que los usuarios importan a una Knowledge Base. Los nodos de lectura de Agent también descargan el contenido de los archivos que leen, pero solo para esa ejecución: el contenido se convierte en la salida del nodo, que Profound conserva en el historial de la ejecución del Agent como cualquier otra salida de nodo. Para cada archivo importado, Profound almacena:

* el contenido del archivo en un bucket de Amazon S3, separado lógicamente en la cuenta de AWS de Profound
* el texto analizado en el mismo bucket de S3, y sus embeddings de búsqueda en un servicio gestionado de búsqueda vectorial, para que la búsqueda de Knowledge Base pueda encontrarlo
* el nombre, la ruta, el tamaño, el tipo, el enlace de origen y el hash del contenido del archivo en la base de datos de Profound

Profound usa el contenido importado solo como fuente de información para las funciones en las que lo usas, como la búsqueda de [Knowledge Base](https://help.tryprofound.com/articles/5775538586-knowledge-bases-overview), [Agents](https://help.tryprofound.com/articles/9762251986-agents-overview) y [FactCheck](https://help.tryprofound.com/articles/5793584301-about-factcheck). Profound no usa tus archivos para entrenar modelos.

## Eliminación y retención

Profound conserva el contenido importado hasta que ocurre una de estas situaciones:

* un usuario elimina el documento, la carpeta o la Knowledge Base en Profound
* la sincronización automática detecta que el archivo se eliminó de Drive o ya no es accesible

Eliminar un documento elimina el archivo almacenado, su texto analizado y sus embeddings de búsqueda. Revocar la conexión de Google Drive no elimina los archivos que ya se importaron. Elimínalos de la Knowledge Base si necesitas que se eliminen.

## Almacenamiento y manejo de tokens

* **Cifrado:** Profound cifra mediante cifrado de sobre los tokens de acceso y actualización de OAuth con una clave de [AWS Key Management Service (KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) reservada para datos de clientes y almacena el texto cifrado en Amazon DynamoDB. El contexto de cifrado vincula cada registro a una organización, un proveedor y un usuario, de modo que un registro no puede descifrarse con la identidad de otra organización o de otro usuario. La base de datos principal de Profound solo guarda una referencia al registro cifrado, nunca los tokens.
* **Ámbito:** Cada lectura de credenciales verifica que la conexión pertenezca a la organización del usuario que la solicita y, en el caso de conexiones personales como Google Drive, al usuario que la solicita. Profound registra cada lectura de credenciales en una tabla de auditoría interna, con la integración, el endpoint que la solicita, el usuario para el que se ejecutó la lectura y una marca de tiempo. Este registro no es visible en la plataforma.
* **Actualización:** Profound solicita [acceso sin conexión](https://developers.google.com/identity/protocols/oauth2/web-server#offline) a Google, por lo que recibe un token de actualización y puede mantener en funcionamiento la sincronización automática de Knowledge Base sin pedirle al usuario que vuelva a iniciar sesión. Cuando un token de acceso vence, el backend de Profound intercambia el token de actualización por uno nuevo. Si varias solicitudes necesitan el token al mismo tiempo, solo una de ellas contacta a Google. Las demás esperan a que termine esa actualización y reutilizan su resultado.
* **Qué se almacena sobre la cuenta:** Profound almacena la dirección de correo electrónico de la cuenta de Google y su identificador de sujeto (la clave `sub` en el [payload del token de ID](https://developers.google.com/identity/openid-connect/openid-connect#an-id-tokens-payload)) junto con la conexión. El identificador de sujeto nunca cambia, aunque cambie la dirección de correo electrónico de la cuenta, por lo que Profound lo usa para reconocer cuándo un usuario vuelve a conectar la misma cuenta.

## Revocar el acceso

Los usuarios revocan la conexión en Profound en **Settings** > **Integrations** > **Google Drive**, desde el menú de acciones **...** de la cuenta conectada, seleccionando **Revoke**. Cuando un usuario revoca:

* Profound elimina el registro cifrado del token y marca la conexión como revocada. La eliminación no es reversible.
* Si esta es la última conexión de Google que le queda a la cuenta en tu organización, Profound también llama al [endpoint de revocación de tokens](https://developers.google.com/identity/protocols/oauth2/web-server#tokenrevoke) de Google para el token de acceso y el token de actualización. De lo contrario, pospone esa llamada, como se explica a continuación.
* La sincronización automática de Knowledge Base y los nodos de Agent que usan la conexión dejan de funcionar hasta que el usuario vuelva a conectarse.

Las integraciones de Google Drive, Gmail, Google Search Console y Google Ads se identifican ante Google con el mismo cliente de OAuth (Google Analytics usa uno distinto). Google trata todos los permisos que una cuenta de Google ha otorgado a ese cliente como una sola autorización, y revocar cualquier token invalida todos los tokens que Google emitió a esa cuenta para Profound. Por eso, revocar una conexión elimina sus tokens almacenados en Profound de inmediato, pero Profound le pide a Google que revoque la autorización solo cuando se revoca la última conexión que le queda a la cuenta. Las conexiones realizadas con otras cuentas de Google no se ven afectadas.

<Note>
  Los usuarios también pueden revocar el acceso de Profound desde la [página de acceso de terceros](https://support.google.com/accounts/answer/13533235) de su cuenta de Google. El token de actualización almacenado por Profound deja de funcionar, y el usuario necesita volver a conectar la cuenta en Profound antes de usar la integración de nuevo.
</Note>

## Controles para administradores de Google Workspace

* **Permitir o bloquear Profound como aplicación.** Gestiona el acceso de Profound como se describe en [Control which third-party and internal apps access Google Workspace data](https://knowledge.workspace.google.com/admin/apps/control-which-apps-access-google-workspace-data) de Google. Esta configuración puede requerir el ID de cliente de OAuth de Profound. Tu equipo de cuenta de Profound puede proporcionártelo.
* **El acceso limitado es suficiente para la integración de Google Drive.** La configuración [Limited access](https://knowledge.workspace.google.com/admin/apps/control-which-apps-access-google-workspace-data#trustorlimit) de Google permite que las aplicaciones usen solo [alcances no restringidos](https://developers.google.com/workspace/drive/api/guides/api-specific-auth#nonsensitive-scopes). `drive.file`, `openid` y `userinfo.email` son todos no restringidos, por lo que la integración de Google Drive funciona con **Limited**.
* **Un solo cliente cubre las integraciones de Google de Profound.** Como las integraciones de Google Drive, Gmail, Google Search Console y Google Ads de Profound comparten un cliente de OAuth (Google Analytics tiene el suyo), una lista de permitidos o un bloqueo se aplica a todas ellas.
