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 servizio che il tuo docker-compose.yml non dichiara, 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.

Non serve copiarla a mano. Ogni macchina dell’organizzazione la riceve da sola: chi la ha già la lascia cifrata per quelle che non ce l’hanno, e il servizio distribuisce solo quella busta, che nemmeno lui può aprire. La prima persona dell’organizzazione la crea senza fare nulla; chi arriva dopo la riceve appena qualcuno del team che la possiede già apre Aseptic. Impostazioni → Team dice a che punto si è.

Nessuno deve generarla né incollarla. L’unica cosa offerta è Copiare, che la mette negli appunti senza mostrarla, come backup nel caso andassero perse tutte le macchine del team.

Conviene leggere l’avviso accanto al pulsante e crederci: se il team perde la chiave, il catalogo non si recupera. Non esiste un «ripristina», perché nessun altro ce l’ha. Con la condivisione automatica basta che una macchina del team la conservi; comunque, il suo posto è dove il team custodisce 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:

Finestra del terminale
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.