Ir al contenido

El manifiesto de un micro

El manifiesto describe cómo arrancar un micro. Aseptic 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, aseptic 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 Aseptic por el kind.
  • stack.nodeVersion (Node/Angular) — la versión de Node con la que construir y arrancar el micro ("20", "20.18.1", "^18"). Si no la declaras, Aseptic lee el pin del repo (.nvmrc.node-versionengines.nodevolta.node). Cuando el Node del sistema no la cumple, Aseptic resuelve uno que sí —un Node de un gestor instalado o, si no hay, descarga uno portable que cachea en ~/.aseptic/node/— y lo usa solo para ese micro, sin cambiar tu Node global. El chequeo de entorno avisa si haría falta descargarlo.
  • Puertos — el/los puertos que declara el micro (Aseptic 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.