Appearance
Semillas iniciales para los proyectos
Introducción
Desde el equipo de Nautilus se están creando semillas para agilizar la creación de nuevos servicios generando todo el boilerplate necesario y utilizando las buenas prácticas aprendidas después de la creación de más de 40 proyectos/microservicios creados por el equipo de Nautilus.
Actualmente se dispone de una plantilla para frontend/React y otra para Node.
Aquacis CLI
Se ha creado una interfaz de línea de comandos para centralizar todos los boilerplates que desarrollemos. En un futuro, además, servirá para desplegar o crear servicios en Nautilus.
Actualmente se dispone de un único comando: aquacis new. El cli nos dará a elegir los boilerplate que soporte.
Instalación
npm i -g @scaffolding-tools/aquacis-cli
El cli está publicado en el npm registry privado de ABS
Uso
--skip-install: Para evitar la instalación inicial de dependencencias del proyecto.
--path: Ruta en la que crear el proyecto nuevo.
--help: Información sobre las opciones disponibles
React boilerplate
Uno de los boilerplates de los que disponemos es el de frontend React, al ejecutarlo estas son las preguntas que nos hará para crearnos la configuración inicial del proyecto:
What boilerplate do you want? Aquí escogemos la plantilla que queremos usar para nuestro proyecto, acualmente React y Nodejs, entre otras que están por llegar.
Project name Nombre que le daremos al proyecto, es utilizado para crear la carpeta raíz del mismo, par dar nombre al proyecto en el package.json, para los pipelines de construcción y despliegue de jenkins, o para obtener las traducciones desde el sistema de traducción. Es importante mencionar que tendrá que haber un configuración de servicio con ese nombre en el service_templates y esto es ajeno a este boilerplate.
Project description Actualmente se utiliza únicamente para describir el proyecto en el package.json.
Port Puerto donde se publica la web cuando estamos en modo desarrollo.
Git repository Si lo ponemos aparecerá también en el package.json
Gateway Url Dirección del servicio que expone los recursos que vamos a consumir desde el frontend. El código generado por el boilerplate nos provee de una librería para hacer peticiones autenticadas (mediante envío de token) a este Gateway y que nos redirige automáticamente al proveedor de autenticación de Nautilus si el usuario no está autenticado o el token ha expirado.
Do you want ... the instance ID in your URL Eligiendo Yes como respuesta el componente de routing generado buscará el ID de aplicación en la URL. Este ID se corresponde al ID de aplicación que podemos obtener en el portal y que nos sirve para hacer el servicio multitenant con urls únicas. Hay distintas formas de hacer multitenant que no requieren de marcar esta opción (distinto dominio para las distintas aplicaciones, gestión del Id interna utilizando redux, storage del navegador, etc)
Give me the instance ID ... Si hemos marcado "Yes" en la respuesta anterior nos pedirá un ID por defecto para cuando estamos desarrollando.
Do you want Redux? Para incluir Redux como gestión de Store o no.
Do you want Apollo GraphQL? Si el API con el que conecta la aplicación frontend es servidor de GraphQL o no.
Report builds to Jenkins Channel Podemos especificar un canal de Slack que aparecerá configurado en el Jenkinsfile como medio donde notificar el estado de finalización del último build.
Report builds to Jenkins Channel Lo mismo pero notificar acerca del pipeline de Deploy.
Which package manager do you want Nos permite elegir entre Yarn y NPM como gestor de paquetes por defecto.