Come funzionano le app
Un’app è una raccolta di entità dichiarate utilizzando le funzionidefineEntity() del pacchetto twenty-sdk. L’SDK rileva queste dichiarazioni tramite analisi dell’AST in fase di build e produce un manifest — una descrizione completa di ciò che la tua app aggiunge a uno spazio di lavoro. Queste funzioni convalidano la configurazione in fase di build e offrono il completamento automatico nell’IDE e la sicurezza dei tipi.
L’organizzazione dei file dipende da te. Il rilevamento delle entità è basato sull’AST — l’SDK trova le chiamate a
export default defineEntity(...) indipendentemente da dove si trova il file. La struttura delle cartelle sopra è una convenzione, non un requisito.Tipi di entità
| Entità | Scopo | Documentazione |
|---|---|---|
| Applicazione | Identità dell’app, ruolo predefinito, variabili | Configurazione dell’applicazione |
| Ruolo | Set di autorizzazioni per oggetti e campi | Ruoli e autorizzazioni |
| Oggetto | Tipi di record personalizzati con campi | Oggetti |
| Campo | Aggiungi campi agli oggetti di altre app | Estensione degli oggetti |
| Relazione | Collegamenti bidirezionali tra oggetti | Relazioni |
| Funzione logica | TypeScript lato server con trigger | Funzioni logiche |
| Abilità | Istruzioni riutilizzabili per agenti IA | Abilità e agenti |
| Agente | Assistenti IA con prompt personalizzati | Abilità e agenti |
| Provider di connessione | Credenziali OAuth per API di terze parti | Connessioni |
| Vista | Viste di elenco dei record preconfigurate | Viste |
| Voce del menu di navigazione | Voci della barra laterale personalizzate | Voci del menu di navigazione |
| Layout di pagina | Schede e widget nella pagina dei dettagli di un record | Layout di pagina |
| Componente front-end | UI React in sandbox all’interno di Twenty | Componenti front-end |
| Voce del menu comandi | Azioni rapide e voci Cmd+K | Voci del menu comandi |
Sandboxing
- Le funzioni logiche vengono eseguite in processi Node.js isolati sul server. Accedono ai dati solo tramite il client API tipizzato, con ambito limitato alle autorizzazioni del ruolo dell’app.
- I componenti front-end vengono eseguiti in Web Workers utilizzando il Remote DOM — isolati dalla pagina principale ma renderizzando elementi DOM nativi (non iframe). Comunicano con Twenty tramite un’API host basata sul passaggio di messaggi.
- Le autorizzazioni vengono applicate a livello di API. Il token di runtime (
TWENTY_APP_ACCESS_TOKEN) è derivato dal ruolo definito indefineApplication().
Ciclo di vita dell’app
yarn twenty dev— monitora i file sorgente e sincronizza in tempo reale le modifiche su un server Twenty connesso. Il client API tipizzato viene rigenerato automaticamente quando lo schema cambia.yarn twenty dev:build— compila TypeScript, crea i bundle delle funzioni logiche e dei componenti front-end con esbuild e produce un manifest.- Hook di pre/post-installazione — funzioni opzionali che vengono eseguite durante l’installazione. Vedi Hook di installazione per i dettagli.
Prossimi passaggi
Configurazione
Identità dell’applicazione, ruolo predefinito e hook di installazione.
Dati
Oggetti, campi e relazioni bidirezionali.
Logica
Funzioni logiche, abilità, agenti e connessioni OAuth.
Layout
Viste, navigazione, layout di pagina, componenti front-end.
Operazioni
CLI, test, remoti, CI e pubblicazione della tua app.