Ir al contenido

El manifiesto de un micro

El manifiesto describe cómo arrancar un micro. MicroLab lo autodetecta al añadir el micro y lo mantiene al día con «Actualizar desde el repositorio». Rara vez lo editas a mano; para ver el real de un micro, microlab service show <id>.

Estas son las cosas que declara. Los identificadores y las claves van en inglés (estándar del proyecto).

  • stack — la tecnología: kind (quarkus, spring-boot, node, angular, python) más algún ajuste puntual (por ejemplo el comando de arranque, que admite ${port}). El resto del conocimiento por tecnología (ruta de health, estilo de inyección) lo pone MicroLab por el kind.
  • Puertos — el/los puertos que declara el micro (MicroLab los remapea a puertos efectivos al arrancar).
  • Infraestructura — qué necesita del compose común (Kafka, Redis, Postgres).
  • datasource — su base de datos, con una devUrl opcional para el modo «nube».
  • Dependencias — por cada core al que llama: su identificador, la propiedad que se reescribe al inyectar, la URL de nube y la especificación OpenAPI (para generar la plantilla del mock).
  • requirements — lo que un micro exige más allá de su stack (otra herramienta o una ruta que debe existir), con optional para que sea aviso en vez de fallo.
  • Quick toggles — booleanos declarados por el micro (por ejemplo «sin autenticación») que se activan como casillas y se expanden a propiedades al arrancar.
  • run.native.preCommands — lo que se ejecuta antes de arrancar (versionado, del equipo). Admite ${mvn} y se puede desactivar sin borrar:
run:
native:
preCommands:
- command: ${mvn} -pl bootstrap -am install -DskipTests -T 1C
- command: npx ng build shared-ui
enabled: false # declarado pero apagado
  • prepSteps — pasos bespoke del micro (por ejemplo un seed de base de datos) que se ejecutan a demanda o tras la primera migración («Preparar base de datos»).

La personalización de arranque de tu máquina (propiedades sueltas, base de datos elegida, comando libre) no vive en el manifiesto: vive en settings.local.yml, fuera de Git. Ver Personalizar el arranque.