Stitch: El BaaS de Mongodb

Para aquellos que no la conozcáis, MongoDB es una de las bases de datos NoSQL más extendidas y con mayor aceptación por la comunidad de desarrolladores. MongoDB ha lanzando recientemente un nuevo producto, llamado Stitch, un BaaS que surge con la idea de facilitarnos la tarea de crear aplicacionesBaaS son las siglas de Backend as a Service, que hacen referencia a un servicio que promete reemplazar las tareas de desarrollo del lado del servidor (o backend),  si no es en su totalidad, al menos en gran medida. En este artículo voy a explicaros las funcionalidades de las que dispone el Backend as a Service de MongoDB, profundizando un poco en cada una de ellas.

Autenticación

Este módulo nos permite gestionar la autenticación de nuestra aplicación de una forma muy sencilla y ágil. Para ello, disponemos de varios métodos de autenticación diferentes:
  1. Anónima: Para permitir el acceso a nuestros recursos de forma anónima.
  2. Email/Password: Para realizar el registro en nuestra aplicación con email y contraseña.
  3. Google: Podemos utilizar Google para iniciar sesión en nuestra aplicación.
  4. Facebook: Al igual que con Google, podemos habilitar Facebook para nuestros usuarios.
  5. API Keys: Podemos crear una clave API individual con la que llamar desde nuestro cliente.
  6. Custom Authentication: También disponemos de la opción de desarrollar nuestra propio sistema de autenticación.
Autenticación con MongoDB Stitch
En este mismo panel, podemos visualizar los usuarios que hay registrados en nuestra aplicación, así como dar de alta nuevos en la misma. Cabe destacar que contamos con un SDK que nos facilitará la lógica para el registro e inicio de sesión para cada uno de los métodos anteriores.

Servicios

Los servicios nos permiten añadir funcionalidades comunes a nuestra aplicación sin la necesidad de tener que implementarlas por nosotros mismos. En la fecha de realización de este artículo, tenemos los siguientes servicios:
  1. Twilio: Para envío de mensajes de texto.
  2. S3: Para servir y guardar recursos estáticos.
  3. Servicio HTTP: Nos permite realizar peticiones http.
  4. Amazon SES: Envío de emails.
  5. Servicio Github: Para responder a eventos de Github.
  6. Notificaciones PUSH: Envío de notificaciones con Firebase.
  7. Base de datos: Evidentemente, mongoDB.
Varios de los servicios disponibles en Stitch

Funciones

Las funciones son piezas de código que podemos incluir y que ejecutarán una lógica que nosotros mismos implementaremos. Estas funciones deben ser escritas en javascript y pueden interactuar con el resto de componentes a través de la variable context.
Ejemplo de función en Stitch
En este ejemplo, podemos observar cómo defino una función sum que recibe dos parámetros y devuelve la suma de ambos. Si quisiésemos llamar a esta función desde otra, tendríamos que ejecutar lo siguiente:
context.functions.execute("sum", 5,3); // returns 8

Reglas

Las reglas nos permiten aplicar restricciones a nivel de servicio. Por ejemplo, podríamos hacer que un usuario solo pudiese modificar o leer aquellos registros, cuya columna owner_id coincida con su identificador. Estas reglas se configuran en JSON y se añaden individualmente por cada servicio.
Definición de reglas a nivel de documento en nuestra base de datos

Valores

Los valores son constantes que nosotros mismos definimos y que pueden ser utilizadas en funciones y reglas.
Creando un valor en Stitch
Estas son básicamente las características que Stitch actualmente nos ofrece. Sin embargo, hemos de tener en cuenta que este servicio aún se encuentra en versión beta, por lo que podremos encontrar errores o echar en falta elementos que consideramos esenciales. Os animo a  familiarizaros con esta nueva herramienta y queaportéis vuestra opinión sobre la misma. ¡Un saludo a todos!