Perché esistono le app
I flussi di lavoro coprono l’automazione no-code. Ma alcune cose richiedono codice: un motore di prezzi personalizzato, una pipeline di arricchimento proprietaria, un controllo di conformità che viene eseguito a ogni aggiornamento di un record, un pannello UI personalizzato che recupera dati da uno strumento interno. Le app ti permettono di creare questi elementi come estensioni di prima classe — non script fragili che parlano con un’API dall’esterno, ma codice che viene eseguito sulla piattaforma con pieno accesso al sistema di tipi, al modello di autorizzazioni e all’interfaccia utente.Cosa può definire un’app
Un’app è un pacchetto TypeScript che dichiara entità utilizzandotwenty-sdk:
Tutto viene rilevato tramite analisi AST in fase di build — nessun file di configurazione, nessun boilerplate di registrazione. Inserisci un
export default defineObject(...) in qualsiasi file .ts e l’SDK lo rileva.
Come vengono eseguite
- Le funzioni logiche vengono eseguite in processi Node.js isolati, sandboxed rispetto all’host. Accedono ai dati tramite un 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).
- Le autorizzazioni vengono applicate a livello di API. Un’app vede solo ciò che il suo ruolo consente.
L’esperienza di sviluppo
Scrivi la tua app come un progetto TypeScript sulla tua macchina. La CLI osserva i file sorgente e li sincronizza in tempo reale con un server Twenty in esecuzione — modifica un file e vedi il cambiamento nell’UI entro un secondo. Il client API tipizzato viene rigenerato automaticamente quando lo schema cambia. Quando sei pronto,yarn twenty app:publish --private esegue il push su un server di produzione, oppure yarn twenty app:publish elenca la tua app su npm e sul marketplace di Twenty.
Crea la tua prima app
Procedura guidata in tre fasi — crea lo scaffold, esegui un server locale, sincronizza le tue modifiche.