Cómo puedo evitar que mi código de Google Apps Script sea visible


En muchas ocasiones me han pedido que explique como montar un sistema para que el código no sea visible en nuestro spreadsheet, de forma que se pueda distribuir el documento, todo el mundo pueda usar las funciones, pero nadie pueda ver como están hechas.

Bien, lo responderé fácil.... no se puede.

Fin del artículo. Otro trabajo bien hecho :)



Aunque.... algo se puede hacer. Básicamente hay tres opciones:

1- Montar un Google Add-on ( complemento ), es la única manera real de poner una funcionalidad en un spreadsheet y que el código no pueda verse.
Ahora bien, esta opción esta llena de inconvenientes:
                         - Necesitas estar dado de alta como developer ( no es nada del otro mundo, pero te obliga a hacer un pequeño pago inicial )
                         - El proceso de aprobación por parte de Google puede volverse infernal. Depende de como esté el código o de lo que hagas, vas a tener problemas si o si para publicarlo.
                         -  Te obliga a montar una pagina de ayuda, documentación, etc..
                         - El proceso puede alargarse semanas o incluso meses.
                         - Por defecto el addon es público y puede instalarselo cualquiera. Si no quieres que lo pueda usar cualquiera tendrás que montar algún sistema de autorización de usuarios. Implica más trabajo y en ocasiones se puede escapar del objetivo del proyecto.

2- Montar una página web. Esta opción se basa en cambiar el paradigma de trabajo de nuestro script. Básicamente se basa en una web hecha con Google Apps Script a la que daremos el link solo a quien queramos  o que insertaremos con un iframe en alguna web que tengamos ( incluidas zonas privadas ). El truco aquí reside en que podemos usar esta opción si nuestro script se usa para pedir pocos datos al usuario y generar una respuesta visual ( gráficos, tablas, etc..).Nuestra web lo que hará será precisamente pedir esos datos y representar la salida que deba.
No es una solución fácil, pero en muchas ocasiones es una opción claramente mantenible y modificable, que depende solamente de nosotros para implementar cambios ( no tendremos que pasar ningún control de calidad de Google para que el cambio se haga efectivo )

3- Montar una API servida con Google Apps Script. Este punto es muy parecido al anterior pero con una clara diferencia, aquí no servimos una web, sino que aceptamos parámetros por la url y devolvemos valores, json, html o lo que se necesite. Esto signfica que nuestro spreadsheet tendrá código visible, pero todo lo que se verá es que se llama a una API que habremos creado y que devuelve lo que necesitemos. Esta manera es compleja de implementar pero nuevamente permite tener el control sobre el mantenimiento de la aplicación y nos permite seguir usando el spreadsheet si es algo que realmente necesitamos.

Como habréis observado, fácil no es en ningún caso. Dependiendo la situación en la que estés tal vez te interese más una opción u otra.

Si se te ocurre alguna manera adicional de proteger el código de Google Apps Script , no vaciles en hacérmelo llegar.

Espero que haya servido para guiaros.

Nos vemos

2 comentarios:

  1. Puedes usar un "ofuscado" de código javascript. Lo comprimira, quitará espacios, cambiará nombres de variable,... El código seguirá siendo visible pero a nadie le quedarán ganas de tocarlo. Además irá más rápido.

    ResponderEliminar
    Respuestas
    1. No estoy para nada de acuerdo.

      Te lo pueden pillar igualmente, o al menos, lo más importante ( claves, urls de APIs, etc... )

      Ofuscar nunca es la solución :)

      Eliminar

Tal vez te interese