Aller au contenu

Le manifeste d'un micro

Le manifeste décrit comment démarrer un micro. MicroLab l’autodétecte à l’ajout du micro et le maintient à jour avec « Mettre à jour depuis le dépôt ». Vous l’éditez rarement à la main ; pour voir le vrai d’un micro, microlab service show <id>.

Voici les choses qu’il déclare. Les identifiants et les clés sont en anglais (standard du projet).

  • stack — la technologie : kind (quarkus, spring-boot, node, angular, python) plus quelque ajustement ponctuel (par exemple la commande de démarrage, qui accepte ${port}). Le reste de la connaissance par technologie (chemin de health, style d’injection), MicroLab le fournit via le kind.
  • Ports — le/les ports que le micro déclare (MicroLab les remappe en ports effectifs au démarrage).
  • Infrastructure — ce qu’il a besoin du compose commun (Kafka, Redis, Postgres).
  • datasource — sa base de données, avec une devUrl optionnelle pour le mode « cloud ».
  • Dépendances — pour chaque core qu’il appelle : son identifiant, la propriété qui est réécrite à l’injection, l’URL cloud et la spécification OpenAPI (pour générer le modèle du mock).
  • requirements — ce qu’un micro exige au-delà de son stack (un autre outil ou un chemin qui doit exister), avec optional pour que ce soit un avertissement au lieu d’un échec.
  • Quick toggles — booléens déclarés par le micro (par exemple « sans authentification ») qui s’activent comme des cases et s’étendent en propriétés au démarrage.
  • run.native.preCommands — ce qui s’exécute avant de démarrer (versionné, de l’équipe). Accepte ${mvn} et peut être désactivé sans supprimer :
run:
native:
preCommands:
- command: ${mvn} -pl bootstrap -am install -DskipTests -T 1C
- command: npx ng build shared-ui
enabled: false # déclaré mais éteint
  • prepSteps — étapes bespoke du micro (par exemple un seed de base de données) qui s’exécutent à la demande ou après la première migration (« Préparer la base de données »).

La personnalisation de démarrage de votre machine (propriétés isolées, base de données choisie, commande libre) ne vit pas dans le manifeste : elle vit dans settings.local.yml, hors de Git. Voir Personnaliser le démarrage.