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à
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.