Salta ai contenuti

Il manifesto di un micro

Il manifesto descrive come avviare un micro. MicroLab lo rileva automaticamente all’aggiunta del micro e lo mantiene aggiornato con «Aggiorna dal repository». Lo modifichi raramente a mano; per vedere quello reale di un micro, microlab service show <id>.

Queste sono le cose che dichiara. Gli identificatori e le chiavi sono in inglese (standard del progetto).

  • stack — la tecnologia: kind (quarkus, spring-boot, node, angular, python) più qualche aggiustamento puntuale (per esempio il comando di avvio, che accetta ${port}). Il resto della conoscenza per tecnologia (percorso di health, stile di iniezione) lo mette MicroLab tramite il kind.
  • Porte — la/le porte che il micro dichiara (MicroLab le rimappa a porte effettive all’avvio).
  • Infrastruttura — cosa gli serve dal compose comune (Kafka, Redis, Postgres).
  • datasource — il suo database, con una devUrl opzionale per la modalità «cloud».
  • Dipendenze — per ogni core che chiama: il suo identificatore, la proprietà che viene riscritta all’iniezione, l’URL cloud e la specifica OpenAPI (per generare il modello del mock).
  • requirements — ciò che un micro esige oltre al suo stack (un altro strumento o un percorso che deve esistere), con optional affinché sia un avviso invece di un errore.
  • Quick toggle — booleani dichiarati dal micro (per esempio «senza autenticazione») che si attivano come caselle e si espandono in proprietà all’avvio.
  • run.native.preCommands — ciò che viene eseguito prima di avviare (versionato, del team). Accetta ${mvn} e può essere disattivato senza eliminare:
run:
native:
preCommands:
- command: ${mvn} -pl bootstrap -am install -DskipTests -T 1C
- command: npx ng build shared-ui
enabled: false # dichiarato ma spento
  • prepSteps — passi bespoke del micro (per esempio un seed di database) che si eseguono su richiesta o dopo la prima migrazione («Prepara database»).

La personalizzazione di avvio della tua macchina (proprietà singole, database scelto, comando libero) non vive nel manifesto: vive in settings.local.yml, fuori da Git. Vedi Personalizzare l’avvio.