- Definiți obiecte și câmpuri personalizate sub formă de cod (model de date gestionat)
- Construiți funcții logice cu declanșatoare personalizate (rute HTTP, cron, evenimente ale bazei de date)
- Definiți abilități pentru agenți de IA
- Construiți componente front-end care se afișează în interfața Twenty
- Implementați aceeași aplicație în mai multe spații de lucru
Cerințe
- Node.js 24+ și Yarn 4
- Un spațiu de lucru Twenty și o cheie API (creați una la https://app.twenty.com/settings/api-webhooks)
Începeți
Creați o aplicație nouă folosind generatorul oficial, apoi autentificați-vă și începeți să dezvoltați:Structura proiectului (generată)
Când rulaținpx create-twenty-app@latest my-twenty-app, generatorul:
- Copiază o aplicație de bază minimală în
my-twenty-app/ - Adaugă o dependență locală
twenty-sdkși configurația Yarn 4 - Creează fișiere de configurare și scripturi conectate la CLI-ul
twenty - Generează fișierele de bază (configurația aplicației, rolul implicit al funcțiilor, funcțiile de pre-instalare și post-instalare) plus fișiere de exemplu în funcție de modul de generare a scheletului.
--exhaustive arată astfel:
--minimal, sunt create doar fișierele de bază (application-config.ts, roles/default-role.ts, logic-functions/pre-install.ts și logic-functions/post-install.ts).
Pe scurt:
- package.json: Declară numele aplicației, versiunea, motoarele (Node 24+, Yarn 4) și adaugă
twenty-sdkplus un scripttwentycare deleagă către CLI-ul localtwenty. Rulațiyarn twenty helppentru a lista toate comenzile disponibile. - .gitignore: Ignoră artefacte comune precum
node_modules,.yarn,generated/(client tipizat),dist/,build/, foldere de coverage, fișiere jurnal și fișiere.env*. - yarn.lock, .yarnrc.yml, .yarn/: Blochează și configurează lanțul de instrumente Yarn 4 folosit de proiect.
- .nvmrc: Fixează versiunea Node.js așteptată de proiect.
- .oxlintrc.json și tsconfig.json: Oferă linting și configurație TypeScript pentru fișierele TypeScript ale aplicației.
- README.md: Un README scurt în rădăcina aplicației, cu instrucțiuni de bază.
- public/: Un folder pentru stocarea resurselor publice (imagini, fonturi, fișiere statice) care vor fi servite împreună cu aplicația dvs. Fișierele plasate aici sunt încărcate în timpul sincronizării și sunt accesibile la rulare.
- src/: Locul principal unde vă definiți aplicația sub formă de cod
Detectarea entităților
SDK-ul detectează entitățile analizând fișierele TypeScript pentru apeluriexport default define<Entity>({...}). Fiecare tip de entitate are o funcție ajutătoare corespunzătoare, exportată din twenty-sdk:
| Funcție ajutătoare | Tipul entității |
|---|---|
defineObject | Definiții de obiecte personalizate |
defineLogicFunction | Definiții de funcții de logică |
definePreInstallLogicFunction | Funcție logică de pre-instalare (rulează înainte de instalare) |
definePostInstallLogicFunction | Funcție logică post-instalare (rulează după instalare) |
defineFrontComponent | Definiții ale componentelor de interfață |
defineRole | Definiții de rol |
defineField | Extensii de câmp pentru obiectele existente |
defineView | Definiții pentru vizualizări salvate |
defineNavigationMenuItem | Definiții pentru elemente de meniu de navigare |
defineSkill | Definiții ale abilităților agentului IA |
Denumirea fișierelor este flexibilă. Detectarea entităților se bazează pe AST — SDK-ul scanează fișierele sursă pentru tiparul
export default define<Entity>({...}). Puteți organiza fișierele și folderele cum doriți. Gruparea după tipul de entitate (de exemplu, logic-functions/, roles/) este doar o convenție pentru organizarea codului, nu o cerință.yarn twenty app:devva genera automat doi clienți API tipizați înnode_modules/twenty-sdk/generated:CoreApiClient(pentru datele spațiului de lucru prin/graphql) șiMetadataApiClient(pentru configurarea spațiului de lucru și încărcarea fișierelor prin/metadata).yarn twenty entity:addva adăuga fișiere de definire a entităților însrc/pentru obiectele, funcțiile, componentele front-end, rolurile, abilitățile și altele.
Autentificare
Prima dată când rulațiyarn twenty auth:login, vi se vor solicita:
- URL-ul API (implicit http://localhost:3000 sau profilul spațiului de lucru curent)
- Cheie API
~/.twenty/config.json. Puteți menține mai multe profiluri și comuta între ele.
Gestionarea spațiilor de lucru
yarn twenty auth:switch, toate comenzile ulterioare vor folosi implicit acel spațiu de lucru. Îl puteți totuși suprascrie temporar cu --workspace <name>.
Configurare manuală (fără generator)
Deși recomandăm utilizareacreate-twenty-app pentru cea mai bună experiență de început, puteți configura și un proiect manual. Nu instalați CLI-ul global. În schimb, adăugați twenty-sdk ca dependență locală și conectați un singur script în package.json-ul dvs.:
twenty:
yarn twenty <command>, de ex. yarn twenty app:dev, yarn twenty help, etc.
Depanare
- Erori de autentificare: rulați
yarn twenty auth:loginși asigurați-vă că cheia API are permisiunile necesare. - Nu se poate conecta la server: verificați URL-ul API și că serverul Twenty este accesibil.
- Tipuri sau client lipsă/învechite: reporniți
yarn twenty app:dev— acesta generează automat clientul tipizat. - Modul dev nu sincronizează: asigurați-vă că
yarn twenty app:devrulează și că modificările nu sunt ignorate de mediul dvs.