Estensioni¶
Lo store delle estensioni (Admin → Estensioni) installa estensioni firmate dal fornitore che aggiungono funzionalità specifiche del cliente — contenuti aggiuntivi del metamodello, integrazioni, processi in background e persino nuove pagine — senza modificare il core di Turbo EA (principio «clean core»).
Le estensioni si installano in due modi: con un clic dallo Store integrato (se l'istanza ha accesso a Internet) oppure caricando direttamente i file — l'estensione è un pacchetto .teax firmato e la licenza un file di testo firmato, entrambi inviati tipicamente via e-mail. Il flusso basato su file non richiede account dello store né connessione in uscita, quindi funziona in modo identico su istanze isolate (air-gapped).
La pagina ha due schede: Store sfoglia il catalogo delle estensioni del fornitore con installazione a un clic, mentre Installate gestisce le licenze e installa da file.
Le estensioni sono realizzate e firmate da Turbo EA — non sono auto-sviluppate né aperte a terzi. Se ti serve una funzionalità su misura per la tua organizzazione, possiamo realizzarla e concederla in licenza per te. Vedi la consulenza Turbo EA.
Guide per ogni estensione¶
Ogni estensione pubblicata nello store ha la propria guida: che cosa fa, come configurarla e come usarla ogni giorno. Si veda Estensioni.
Come funziona la fiducia¶
Due verifiche indipendenti proteggono l'istanza:
- Provenienza (firma). Ogni pacchetto porta una firma Ed25519 della chiave del fornitore. Turbo EA la verifica al caricamento e di nuovo a ogni avvio del backend. I pacchetti non firmati, manomessi o di terzi vengono rifiutati — un'estensione installata è garantita essere esattamente ciò che il fornitore ha costruito.
- Attivazione (licenza). Un file di licenza firmato elenca i diritti — uno per estensione, ciascuno con la propria scadenza. Un'estensione installata funziona solo finché esiste un diritto utilizzabile. Le licenze sono vincolate all'ID della tua istanza — una licenza emessa per un'altra istanza viene rifiutata.
Estensioni gratuite¶
Alcune estensioni sono gratuite e non richiedono alcuna licenza. Si installano e funzionano subito: nessun passaggio di acquisto e nessun file di licenza da incollare. Le estensioni gratuite sono contrassegnate da un'etichetta Gratis nelle schede Store e Installate, e le azioni Acquista e Rinnova sono nascoste per esse. Il controllo della firma continua ad applicarsi esattamente come per le estensioni a pagamento (anche un'estensione gratuita è firmata dal fornitore), quindi la provenienza è garantita in ogni caso. Poiché non richiedono alcun diritto, le estensioni gratuite non scadono mai e non entrano mai in un periodo di tolleranza.
L'ID della tua istanza¶
Ogni installazione genera una sola volta un ID istanza univoco (TEA-XXXX-XXXX-XXXX), mostrato in cima ad Admin → Estensioni con un pulsante di copia. È la tua identità di licenza: indicalo all'acquisto (lo Store integrato lo invia automaticamente; il checkout dello store online lo richiede) così ogni estensione acquistata per questa istanza — da qualsiasi amministratore, con qualsiasi e-mail — confluisce in un'unica licenza combinata. Identifica soltanto la tua istanza; non è mai una credenziale, quindi puoi condividerlo con il fornitore senza rischi.

L'ID viaggia con un trasferimento del workspace, quindi il passaggio a un nuovo host mantiene valida la licenza. Dopo una reinstallazione completa l'istanza riceve un nuovo ID — chiedi al fornitore di riemettere la licenza per quello (un rapido «re-key» da parte sua).
La scheda Store¶
La scheda Store funziona senza alcuna configurazione ed elenca le estensioni pubblicate dal fornitore come una griglia di riquadri compatti: logo, nome, stato della licenza e prezzo. Fai clic su un riquadro per aprire un'ampia finestra di dettaglio: da un lato una galleria di schermate — scorrila con le frecce o le miniature e fai clic su una schermata per vederla a dimensione intera — e, accanto, la descrizione completa, i tag di categoria, i crediti di origine e licenza e le azioni. Quando lo store pubblica le note di rilascio dell'estensione, le due versioni più recenti compaiono sotto Novità, con un collegamento Registro delle modifiche completo alla pagina dell'estensione nello store. Le estensioni senza immagine mostrano un riquadro generato con le loro iniziali.

- Acquista apre la pagina di pagamento in una nuova scheda del browser. Non appena il pagamento è confermato, la licenza viene applicata automaticamente (una copia arriva anche via e-mail).
- Alcune offerte sono vendute con due piani: mensile e annuale, di norma l'annuale scontato. La finestra dei dettagli propone allora Acquisto mensile e Acquisto annuale invece di un solo pulsante; entrambi portano allo stesso pagamento.
- Installa (o Aggiorna quando è pubblicata una versione più recente) verifica prima la licenza — se l'estensione non è ancora licenziata, una finestra propone di acquistarla o incollare una licenza, poi continua automaticamente — e scarica il pacchetto con esattamente la stessa verifica della firma e la stessa anteprima di simulazione di un caricamento manuale. Le estensioni con demo mostrano un link Guardalo in azione. Il pulsante riporta Aggiorna solo per un'estensione già installata; altrimenti è un semplice Installa che scarica la versione pubblicata.
Il catalogo è organizzato in cinque sezioni — Strategia, pianificazione e trasformazione, Governance e automazione, Integrazioni, Normative e Servizi — ciascuna con la propria intestazione, così da vedere a colpo d'occhio di che tipo di offerta si tratta; ciò che il catalogo non ha classificato compare sotto Altre in fondo. All'interno delle sezioni, le pillole dei tag (gratuita o commerciale, più temi come integrazione) fungono da filtro: sopra l'elenco compare una barra dei filtri, cliccando le pillole si restringe (più pillole si combinano), le sezioni senza corrispondenze scompaiono e Tutte ripristina la vista.
Un'offerta di servizio — qualcosa che non si installa, come un abbonamento di supporto — si vende e si licenzia come un'estensione, ma senza bundle. La sua scheda e la finestra dei dettagli offrono solo Acquista, non mostrano alcuna versione e lo dicono chiaramente; confermato l'acquisto, sulla scheda compare lo stesso chip di licenza (Si rinnova il …) e l'e-mail di conferma spiega come usare ciò che avete acquistato.
La scheda Store è in sola lettura e anonima: nessun account, nessun token, e nulla della tua istanza viene inviato — viene letto solo il catalogo pubblico del fornitore. Le istanze isolate non richiedono alcuna configurazione — la scheda mostra allora semplicemente un avviso cordiale — e usano il flusso basato su file qui sotto; il sito dello store del fornitore offre gli stessi acquisti e download da qualsiasi browser connesso a Internet. Se qualcosa tra la tua istanza e lo store blocca la richiesta — un proxy, un firewall o una protezione anti-bot davanti allo store —, la scheda lo segnala e indica lo stato HTTP ricevuto, così un'istanza bloccata non viene mai scambiata per una isolata.
L'istanza controlla inoltre il catalogo una volta al giorno e segnala i cambiamenti, così una nuova estensione — o una correzione di sicurezza per una già in uso — non deve attendere che qualcuno apra per caso questa pagina. Gli amministratori (chiunque abbia un ruolo che concede admin.manage_extensions) ricevono una notifica nella campanella quando una nuova estensione viene pubblicata nello store e un'altra quando un'estensione installata ha una versione più recente. Ogni cambiamento viene annunciato una sola volta e una giornata di rilasci intensa arriva come una notifica per tipo anziché una per estensione. Non viene scaricato né installato nulla: la notifica ti porta semplicemente qui. Il controllo giornaliero può essere disattivato del tutto in Admin → Impostazioni → Notifiche di aggiornamento.
La scheda mostra anche quando lo store è stato letto l'ultima volta e un pulsante Verifica ora che esegue subito il controllo e riporta ciò che ha trovato: puoi così confermare che il controllo quotidiano funziona senza aspettare un giorno. Se un controllo non è riuscito, il motivo viene mostrato qui anziché restare silenzioso.
Prove¶
Alcune estensioni a pagamento offrono una prova gratuita di 30 giorni — cerca il pulsante Avvia la prova di 30 giorni nella scheda Store (o l'opzione di prova sul sito web dello store). Avviare una prova funziona come un acquisto senza pagamento: non serve alcuna carta di credito, la licenza si aggiorna automaticamente (una copia arriva anche via e-mail per le installazioni isolate) e l'estensione funziona con tutte le funzionalità per 30 giorni.
- Ogni istanza Turbo EA può provare una determinata estensione una sola volta.
- Una prova termina esattamente alla data di fine — non c'è periodo di tolleranza. L'estensione smette quindi di funzionare finché non ti abboni; i tuoi dati non vengono mai eliminati e tutto torna nel momento in cui viene applicata una licenza in abbonamento.
- La scheda «Installate» mostra i diritti di prova come Prova fino al ….
- Le prove terminano da sole — non c'è nulla da annullare e non viene mai addebitato nulla.
Installare un'estensione¶
- Se non lo hai già fatto, applica prima la licenza (vedi sotto).
- Apri Admin → Estensioni, premi Installa da file… sopra il catalogo nella scheda Store o sopra l'elenco nella scheda Installate (e dentro l'avviso mostrato quando lo store non è raggiungibile) e carica il file
.teaxricevuto. - Turbo EA verifica la firma e apre una finestra di installazione con un'anteprima: per le estensioni con contenuti è una simulazione di ogni tipo di scheda, gruppo di tag, scheda e relazione che l'estensione creerebbe o aggiornerebbe — non viene ancora scritto nulla.
- Controlla l'anteprima — scorre all'interno della finestra — e premi Installa estensione in fondo alla finestra, dove il pulsante resta comunque, per quanto lunga sia l'anteprima.
- Se l'estensione contiene codice backend, un avviso chiede di riavviare il container backend (
docker compose restart backend). Le estensioni di contenuto e di interfaccia sono attive subito — gli utenti vedono la nuova interfaccia al prossimo caricamento della pagina.
Caricare due volte lo stesso pacchetto è sicuro — l'anteprima mostra tutto come «saltato» e l'applicazione non cambia nulla.
Aggiornare un'estensione¶
Quando lo store pubblica una versione più recente di un'estensione installata, la scheda Installate mostra un chip Aggiorna a X accanto alla versione (e il pulsante della scheda Store diventa Aggiorna). Un clic verifica la firma e scarica il bundle, quindi mostra che cosa contiene la versione — le note di rilascio dell'estensione, con un collegamento Registro delle modifiche completo al resto — con Installa e Annulla. Nulla viene scritto finché non si preme Installa; Annulla elimina il download. Una prima installazione non ha una versione precedente con cui confrontarsi e continua ad applicarsi con un solo clic. Durante un'installazione o un aggiornamento il pulsante (o il chip) mostra un indicatore di avanzamento e resta disabilitato fino al termine, e la finestra di installazione mostra l'operazione da qualunque punto tu l'abbia avviata. Valgono due protezioni:
- Aggiornare un'estensione che hai deliberatamente disattivato la lascia disattivata: la nuova versione arriva su disco, ma i suoi contenuti restano nascosti e nulla viene eseguito finché non la riattivi.
- Installare un pacchetto più vecchio della versione installata richiede prima una conferma esplicita: un downgrade potrebbe non comprendere i dati scritti dalla versione più recente. In nessun caso viene eliminato qualcosa.
Quando l'aggiornamento viene applicato, tutte le persone che possono usare l'estensione ricevono una notifica Estensione aggiornata nella campanella e possono aprire da lì le stesse note di rilascio. È attiva per impostazione predefinita e non viene mai inviata per e-mail; ognuno può silenziarla nelle proprie preferenze di notifica.
Licenze e rinnovo¶
Applica una licenza tramite Inserisci licenza… nella scheda Installate (incolla il testo o carica il file); il pulsante compare anche su ogni riga di estensione che ne ha bisogno. La pagina mostra quindi l'intestatario e un badge per ogni diritto con la sua scadenza.
La tua istanza mantiene una sola licenza alla volta — applicarne una nuova sostituisce la precedente. Le licenze emesse dallo Store contengono sempre tutti gli acquisti effettuati per la tua istanza, quindi la sostituzione è sicura. Se possiedi anche licenze emesse manualmente, chiedi al tuo fornitore una licenza combinata invece di applicare file per singola estensione; se una licenza applicata rimuovesse diritti ancora coperti da quella attuale, Turbo EA li elenca e chiede prima conferma (in nessun caso vengono eliminati dati).
Quando un diritto supera la scadenza entra in un periodo di tolleranza (30 giorni per impostazione predefinita): tutto continua a funzionare e gli amministratori vedono un avviso. Dopo la tolleranza l'estensione viene disattivata dolcemente — le sue pagine spariscono, la sua API rifiuta le richieste, i suoi processi in background si fermano. Nessun dato viene mai cancellato. Applicare una licenza rinnovata ripristina tutto all'istante, senza riavvio.
Le licenze acquistate tramite lo Store si rinnovano da sole sulle istanze connesse: dopo ogni pagamento andato a buon fine, l'istanza recupera automaticamente la licenza estesa — niente da incollare. Su un'istanza isolata il rinnovo è: incollare il file di licenza aggiornato ricevuto via e-mail (o richiederlo al fornitore) — nient'altro.
Stato del rinnovo automatico e disdetta¶
Ogni chip di entitlement dice cosa accade alla sua data: Si rinnova il {data} per un abbonamento attivo, oppure Scade il {data} — non sarà rinnovato dopo una disdetta. L'informazione proviene dalla licenza firmata stessa, quindi è corretta anche sulle istanze isolate — il file di licenza inviato via e-mail dopo ogni modifica dell'abbonamento porta lo stato aggiornato; incollalo e il chip è attuale.
Per vedere la data di rinnovo, disdire o ripristinare il rinnovo automatico, cambiare il metodo di pagamento o scaricare le fatture, usa Gestisci abbonamento accanto al nome del licenziatario (visibile per le licenze acquistate nello Store). Apre il tuo portale di fatturazione in una nuova scheda — nessun account necessario. Su un'istanza isolata il pulsante non può raggiungere lo store; usa invece il link Gestisci abbonamento presente in ogni e-mail di licenza (serve Internet solo al tuo browser, non alla tua istanza Turbo EA).
La disdetta non spegne mai nulla immediatamente: l'estensione continua a funzionare fino alla fine del periodo pagato, poi si applica il normale flusso di tolleranza + disattivazione morbida. I tuoi dati non vengono mai eliminati, e riabbonarsi ripristina tutto.
Abilitare, disabilitare e disinstallare¶
- L'interruttore Abilitata disattiva subito l'estensione (senza riavvio) e può essere riattivato in qualsiasi momento. Per i pacchetti di contenuto questo nasconde i loro tipi di scheda dal metamodello — le schede restano dove sono.
- Disinstalla rimuove i file dell'estensione e nasconde i suoi tipi di scheda dal metamodello. Le schede e le tabelle proprie dell'estensione vengono deliberatamente conservate, e tutto — tipi inclusi — ricompare in caso di reinstallazione.
Permessi¶
L'intera pagina e tutte le sue rotte API sono protette dal permesso dedicato admin.manage_extensions (assegnato al ruolo Admin integrato). Le estensioni possono definire chiavi di permesso proprie (ext.<nome>.…), che compaiono in Admin → Utenti e ruoli una volta caricata l'estensione.
Funzionalità di campo avanzate¶
Alcune estensioni sbloccano modi avanzati di descrivere i tuoi dati che il core non offre da solo:
- Testo di aiuto del campo — una guida comprimibile mostrata sotto un campo durante l'inserimento dei dati, così che un modulo si spieghi da sé.
- Tipi di campo personalizzati — nuovi tipi oltre a quelli integrati (ad esempio una valutazione configurabile da 1 a 5 o da 0 a 10).
Queste opzioni compaiono nell'editor dei campi del metamodello solo finché l'estensione che le fornisce è installata e provvista di licenza. Se tale estensione viene in seguito disattivata o la sua licenza scade, i valori già inseriti continuano a essere mostrati come testo di sola lettura — nulla viene svuotato o eliminato — e le opzioni di modifica scompaiono semplicemente finché l'estensione non è di nuovo attiva.
Grant di accesso ai dati¶
La maggior parte delle estensioni lavora solo con i propri dati. Un'estensione che si integra con i dati del core — ad esempio un connettore che sincronizza i todo con un task tracker esterno come Jira o MS Planner (#921) — deve dichiarare dei grant nel proprio manifest firmato:
core.todos.read/core.todos.write— leggere o modificare i todo tramite l'SDK delle estensioni. La scrittura include la lettura. Sui todo di sistema (come le richieste di firma) un'estensione di sincronizzazione può solo impostare il riferimento esterno mostrato come chip — non può mai completarli, modificarli, riassegnarli o eliminarli, e i todo di un'altra estensione restano intoccabili.core.events.todo— ricevere gli eventi di modifica dei todo, così un connettore reagisce subito invece di attendere il prossimo ciclo di polling.core.users.read— consultare gli utenti (solo nome, e-mail e stato attivo) così che un connettore possa abbinare gli assegnatari agli account dello strumento esterno. Nessun dato su ruoli, accessi o preferenze viene esposto, e le estensioni non possono mai modificare gli utenti.core.cards.read— leggere schede, relazioni e il metamodello, ad esempio perché un connettore possa abbinare le vostre applicazioni ai record di un sistema esterno. Le schede archiviate restano fuori dalla vista.core.cards.write— creare, aggiornare o archiviare schede e aggiungere relazioni, con esattamente la stessa validazione applicata dall'editor dell'app. Gli aggiornamenti uniscono i valori dei campi invece di sostituirli, così un'estensione non può mai cancellare dati che non gestisce, e non esiste l'eliminazione definitiva — l'archiviazione, con la sua finestra di ripristino, è l'unica rimozione possibile per un'estensione.core.events.card— ricevere gli eventi di modifica di schede e relazioni, così che un connettore reagisca subito ai cambiamenti dell'inventario invece di attendere il prossimo ciclo di polling.core.notifications.channel— recapitare le notifiche che avete attivato su un canale proprio dell'estensione, ad esempio un messaggio di chat. L'estensione riceve titolo, messaggio e collegamento di una notifica oltre al vostro identificativo utente; non riceve il vostro indirizzo e-mail a meno che dichiari anchecore.users.read, e non riceve mai un tipo che non avete attivato per essa. Le notifiche che restano solo nella campanella non vengono mai inviate a un canale di estensione. Ogni canale di estensione parte disattivato per tutti i tipi di notifica, compresi gli avvisi amministrativi (nuova estensione, aggiornamento di un'estensione, aggiornamento di Turbo EA): aprite le preferenze di notifica dalla campanella e attivate la colonna del canale per i tipi che volete ricevere lì. Un avviso già mostrato nella campanella prima dell'attivazione del canale non viene inviato di nuovo.core.adr.read— leggere le decisioni di architettura (riferimento, titolo, stato, card collegate e i dati propri dell'estensione su di esse).core.adr.write— registrare una decisione di architettura come bozza e collegarla a card attive, per esempio un'estensione che annota l'esito di un'analisi come decisione da esaminare. La scrittura include la lettura. Un'estensione non può mai firmare una decisione, inviarla in revisione né cambiarne lo stato — restano ai vostri utenti — e può salvare dati sul record solo sotto le proprie chiaviext.<key>.*. Ogni registrazione è annotata in Admin → Registro di audit come batchext:<key>.core.risks.read— leggere il registro dei rischi (riferimento, titolo, categoria, livello, stato, responsabile, card collegate).core.risks.write— segnalare un rischio e collegarlo a card, per esempio una regola che registra un rischio quando un'applicazione senza responsabile supera una soglia di costo. La scrittura include la lettura. Un rischio segnalato così mostra Estensione come origine nel registro, riceve il riferimento dalla stessa sequenza degli altri e il suo responsabile riceve il todo e la notifica consueti. Un'estensione può in seguito modificare titolo, descrizione, responsabile e data obiettivo dei rischi che essa ha segnalato — mai quelli di altri, e mai lo stato di un rischio: farlo avanzare, accettarlo e chiuderlo restano ai vostri utenti.core.notifications.send— inviare una notifica a persone indicate, per esempio «una regola che hai impostato è appena scattata». Arriva come tipo Avviso estensione, oppure come un tipo che l'estensione dichiara per sé e che ottiene così una riga propria nelle preferenze di notifica di ciascuno (in-app attivo, email disattivata per impostazione predefinita) — in entrambi i casi ogni persona decide se raggiunge la campanella, la casella di posta o un canale dell'estensione, e può disattivarla. Alcune di queste notifiche aprono i dettagli nell'app al clic, offrendo la card correlata e la pagina propria dell'estensione solo a chi può aprirle. Il link di una notifica del genere può puntare solo all'interno di Turbo EA.core.stakeholders.write— assegnare o rimuovere ruoli di stakeholder sulle card, usando esattamente i ruoli definiti dal tipo di card. È un grant separato dacore.cards.writeperché un ruolo di stakeholder conferisce alla persona permessi sulla card.core.surveys.read— leggere nome, stato e tasso di risposta di un sondaggio.core.surveys.write— inviare un sondaggio di manutenzione dei dati agli stakeholder di un insieme di card, per esempio una regola pianificata che chiede ai responsabili di ogni applicazione critica sotto l'obiettivo di qualità dei dati di completare le loro card — una richiesta per persona invece di un todo per card. La scrittura include la lettura. Il sondaggio compare in Admin → Sondaggi senza autore, i suoi campi sono esattamente quelli definiti dal tipo di card e ogni persona riceve la consueta notifica del sondaggio. Un'estensione non può mai chiudere un sondaggio né applicarne le risposte — restano a voi — e annullare l'esecuzione che lo ha inviato (Admin → Registro di audit) chiude il sondaggio e ritira le richieste a cui nessuno aveva ancora risposto.
I grant fanno parte del bundle firmato dal fornitore: sono fissati al momento del confezionamento e visibili prima dell'installazione. Valgono solo finché l'estensione è installata, abilitata e con licenza — disabilitarla o lasciar scadere la licenza revoca l'accesso immediatamente, senza riavvio. Ogni modifica fatta da un'estensione è registrata in Admin → Log di audit con origine Estensione, e un todo replicato da un tracker esterno mostra un chip che rimanda all'elemento esterno.
Ogni modifica fatta da un'estensione compare in Admin → Registro di audit come batch ext:<chiave> con le differenze campo per campo, e da lì può essere annullata come qualsiasi altro batch. Gli operatori hanno l'ultima parola: la variabile d'ambiente EXTENSION_WRITES_ENABLED=false sospende all'istante tutte le scritture delle estensioni (le letture continuano, senza riavvio), e EXTENSION_MAX_WRITES_PER_BATCH / EXTENSION_MAX_BATCHES_PER_MINUTE limitano quanto una singola estensione può cambiare per batch e al minuto.
Dove compaiono le pagine delle estensioni¶
Le pagine delle estensioni compaiono nella navigazione una volta che l'estensione è installata e provvista di licenza — di solito come una propria voce di menu di primo livello, anche se alcune vengono collocate dentro un menu del core accanto alle voci integrate: i report sotto il menu Report, e le pagine di governance, rischio o conformità sotto GRC. Una pagina raggruppata torna a essere una voce di primo livello quando il suo menu non è disponibile — il modulo è disattivato, oppure non hai il permesso relativo — così non scompare mai dalla navigazione.