Despliegue en Google Workspace¶
El desarrollo y las pruebas se hacen con cuentas personales de Google, pero el destino es el dominio de Google Workspace de un cliente. Las reglas de negocio (quién aprueba, quién genera el VoBo) usan la cuenta de la sesión y funcionan igual en ambos entornos. Lo que cambia es el acceso y los permisos.
| Tema | Prueba (cuentas personales) | Workspace del cliente |
|---|---|---|
Acceso (appsscript.json) |
"access": "ANYONE" |
"access": "DOMAIN": solo cuentas del dominio |
| Identidad | "executeAs": "USER_ACCESSING" |
Igual: cada usuario queda identificado, y una app interna no muestra el aviso «app no verificada» |
| Permisos | Compartir a mano con cada cuenta | Grupos de Google (SCM, revisores) sobre la Sheet; notas y evidencias en una unidad compartida |
| Roles | Pestaña de configuración de la Sheet | Igual, o derivados de los grupos del dominio más adelante |
| Ejecutor remoto de pruebas | Instalado en el proyecto de prueba | No se instala: es solo para pruebas con datos ficticios |
| Secretos | Propiedades del script del proyecto de prueba | Propiedades del script del proyecto del cliente; nunca en el repo ni en la Sheet |
Por qué USER_ACCESSING
Con USER_DEPLOYING todas las acciones se ejecutan como el dueño del
script. Para una cuenta externa no hay forma de saber quién está operando,
y las validaciones de separación de funciones no servirían. Con
USER_ACCESSING cada acción queda a nombre de quien la hizo, y el acceso
a la Sheet actúa como control de acceso.
Pasos¶
- Crear el proyecto de Apps Script y la Sheet en el dominio del cliente, con la cuenta que el cliente designe.
- Cambiar
accessaDOMAINantes del primer despliegue. - Crear la unidad compartida y los grupos:
- grupo SCM: edición sobre la Sheet y la unidad;
- grupo de revisores: edición sobre la Sheet y lectura sobre la unidad.
- El cliente carga los roles con sus cuentas reales; el repositorio no las contiene.
- Desplegar como aplicación web y compartir la URL solo dentro del dominio.
Prueba con dos cuentas (simulación)¶
Para reproducir el entorno multiusuario sin el dominio:
- Cargar datos ficticios registrando una segunda cuenta como revisor.
- Compartir con esa cuenta la Sheet (edición) y las carpetas de notas y evidencias (lectura).
- La segunda cuenta abre la app en una ventana privada y la autoriza una vez.