Al desarrollar proyectos con Google Apps Script, especialmente complementos, ganarse la confianza del usuario es tan importante como la funcionalidad que ofreces. Un aspecto clave para esa confianza es solicitar únicamente los permisos que tu script necesita. Para eso existe la anotación JSDoc @OnlyCurrentDoc, una herramienta sencilla pero poderosa para mejorar la seguridad de tus scripts.
El problema de los permisos amplios: por defecto Apps Script intenta detectar los scopes OAuth necesarios analizando el código. Pero a veces solicita permisos demasiado generales que permiten acceder a todos los archivos de un tipo, por ejemplo todas las hojas de cálculo de un usuario. Para quien ve un aviso pidiendo permiso para ver y gestionar todas sus hojas de cálculo esto puede resultar alarmante cuando el complemento solo debería operar sobre el documento abierto. Es mejor ser específico.
Qué hace @OnlyCurrentDoc: añade en un comentario a nivel de archivo la anotación /** * @OnlyCurrentDoc */ y con ello indicas a Apps Script que restrinja el acceso únicamente al documento, hoja o formulario al que está vinculado el script. Esto cambia los permisos solicitados por el script a versiones que incluyen el sufijo .currentonly, dejando claro al usuario que la extensión solo accederá al archivo actual.
Ejemplos de cambio de scope: https://www.googleapis.com/auth/spreadsheets pasa a https://www.googleapis.com/auth/spreadsheets.currentonly. De forma análoga documents y presentations se convierten en sus equivalentes con .currentonly. El mensaje al usuario es mucho más tranquilizador porque limita el alcance a un único archivo.
Mejor práctica: definir scopes explícitos en el manifest appsscript.json. Aunque @OnlyCurrentDoc es un buen comienzo, para aplicaciones publicadas es recomendable declarar explícitamente los oauth scopes en el archivo manifest para dejar las autorizaciones completamente claras. Incluye solo los scopes necesarios, por ejemplo el scope de hojas de cálculo currentonly y el scope para interfaces de contenedor cuando proceda.
La excepción poco frecuente: @NotOnlyCurrentDoc. Si tu proyecto usa una librería que declara @OnlyCurrentDoc pero el script principal necesita permisos más amplios, puedes usar la anotación @NotOnlyCurrentDoc para anular esa restricción en el contexto del proyecto maestro.
Resumen: usar @OnlyCurrentDoc y los scopes ...currentonly es una forma simple y efectiva de aumentar la seguridad de tus proyectos Apps Script y de generar confianza entre los usuarios. Es una práctica fundamental para cualquier script que opere dentro de un único documento y especialmente importante en complementos que planeas publicar.
En Q2BSTUDIO como empresa de desarrollo de software a medida y aplicaciones a medida ofrecemos buenas prácticas de seguridad y diseño desde la fase de análisis hasta la implantación. Si necesitas crear complementos seguros, soluciones con inteligencia artificial o servicios cloud integrados, podemos ayudarte. Con experiencia en inteligencia artificial y IA para empresas también desarrollamos agentes IA y soluciones de automatización que integran datos y visualización con power bi. Conecta con nuestras capacidades en Desarrollo de aplicaciones y software a medida y explora nuestras propuestas de soluciones de inteligencia artificial para empresas.
Además ofrecemos servicios de ciberseguridad y pentesting, implantación de servicios cloud aws y azure y servicios inteligencia de negocio para garantizar que tus aplicaciones a medida sean seguras, escalables y alineadas con los objetivos de tu organización.
Palabras clave: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.