Salta ai contenuti

Sezione Squadra

Il posto da cui la squadra prende il proprio ambiente. Invece di passarsi un file in chat — che è quello che fa condividere uno scenario — lo scenario vive in un catalogo e ciascuno lo adotta quando gli serve.

La sezione compare solo se c’è un catalogo configurato. Se non vedi «Squadra» nella barra laterale non ti manca nulla nell’installazione: questo progetto non ha catalogo, e si configura in aseptic.project.yml.

L’elenco di ciò che la squadra condivide. Selezionando una voce, il dettaglio risponde alle due domande che ci si fa prima di adottare qualsiasi cosa:

  • Che cosa porta — quanti servizi, quanti mock e quante impostazioni di avvio. Se porta solo la definizione dello scenario, lo dice anche.
  • Che cosa manca qui — ciò di cui questo scenario ha bisogno e che la tua macchina non ha ancora: una connessione di base dati a cui il pacchetto fa riferimento, una credenziale senza valore, un repository che non è nel tuo spazio di lavoro, o un micro registrato su un altro ramo.

Quel secondo elenco è la ragione per cui il dettaglio esiste. Adottare alla cieca e scoprire il buco quando lo scenario non parte è esattamente il tempo che questo risparmia.

Adotta porta dentro lo scenario e lo riconcilia con il tuo catalogo senza sovrascriverlo: è lo stesso percorso dell’import di un file, con le stesse politiche di conflitto.

Quando manca qualcosa, il dettaglio lo dice con il rimedio accanto: quale credenziale definire, quale repository resta da clonare, su quale ramo è stato registrato ogni servizio. E se preferisci sistemarlo dopo, puoi adottare lo stesso: lo scenario finisce nel tuo catalogo e non partirà finché il buco non è coperto, il che è meglio che non poterlo portare affatto.

Adottare lascia un filo: lo scenario resta annotato con la voce da cui proviene e con la versione esatta che è stata portata. È questo che permette all’applicazione di dire poi qualcosa che prima non poteva dire: questo non è più ciò che condivide il team.

Nell’elenco, ogni voce porta il suo stato:

  • Aggiornato — ciò che c’è qui è ciò che pubblica il team.
  • È cambiato — qualcuno l’ha ripubblicato dopo che era stato adottato.
  • (senza contrassegno) — non è ancora stato portato su questa macchina.

Le voci senza contrassegno sono la maggioranza in un catalogo grande, ed è per questo che non ne portano nessuno: se fosse contrassegnato tutto, l’unico contrassegno che chiede qualcosa si perderebbe fra gli altri.

Aprendo una voce già adottata, il dettaglio aggiunge Cosa cambia: quali servizi differiscono da quelli presenti qui e in quali campi concreti. E il pulsante passa da Adotta a Aggiorna, perché è ciò che fa: riscrive lo scenario che c’è già, non lascia una copia accanto. Adottare tre volte non produce più «Pagamenti QA», «Pagamenti QA (2)» e «Pagamenti QA (3)».

Ciò che si confronta è il contenuto, quindi ripubblicare la stessa cosa non conta come cambiamento. Un avviso che scatta senza che nessuno abbia toccato nulla smette presto di essere letto, e con lui quello che conta davvero.

Se qualcuno ritira una voce dal catalogo, lo scenario che ne è uscito continua a funzionare qui — ma la sezione lo dice in alto, invece di lasciarlo sparire in silenzio: dietro non c’è più nessuno che lo aggiornerà.

Pubblica uno scenario… lo mette a disposizione di tutta la squadra, con una riga che spieghi a che cosa serve. Ci si arriva dall’intestazione della sezione, o dallo scenario stesso con Condividere con il team… nel suo menu. Quella riga è ciò che vedrà chi lo trova nell’elenco, quindi vale la pena scriverla.

Il tuo strato di avvio locale non viaggia. I flag e le variabili con cui tu tiri su un micro sono della tua macchina e non devono per forza valere su quella di un altro; quel che si pubblica sono lo scenario, i suoi manifesti e i suoi mock.

Ritirare una voce la toglie dal catalogo di tutta la squadra, non solo dal tuo. Per questo chiede conferma: non stai cancellando qualcosa di tuo.

Quando il catalogo è ospitato, è cifrato end-to-end: quello che il server conserva sono blocchi che il server non può aprire. La chiave è della squadra e non esce dalle sue macchine.

Si genera una volta — Genera una chiave nuova — e si incolla sulle altre macchine — Inserisci la chiave della squadra. L’app chiede di ripeterla al salvataggio, ed è il modo in cui verifica che l’hai davvero copiata da qualche parte prima di andare avanti.

Vale la pena leggere l’avviso accanto al pulsante e crederci: se la squadra perde la chiave, il catalogo non si recupera. Non c’è nessun «ripristina» che tenga, perché nessun altro ce l’ha. Il suo posto è dove la squadra tiene gli altri segreti.

Un catalogo servito via Git non ha bisogno di chiave: lì il controllo d’accesso è quello del repository stesso.

Tutto questo esiste anche nella CLI, ed è ciò che permette di montare l’ambiente in un job di integrazione continua o sulla macchina di chi è appena arrivato:

Ventana de terminal
aseptic team list # che cosa condivide la squadra
aseptic team status # è ancora quello che condivide il team?
aseptic team adopt pagos-qa --apply # portalo e adottalo qui
aseptic start "Pagos QA"

Senza --apply, adopt mostra solo il piano e che cosa manca su questa macchina — lo stesso elenco del dettaglio della sezione. Dettaglio completo in Comandi della CLI.

Non è un posto dove tenere il codice dei tuoi micro: i repo restano repo. Quel che si condivide è come si combinano — quali micro, in quale modalità, con quali mock e quali dipendenze risolte —, che è precisamente ciò che non sta in un README e finisce per tramandarsi a voce.