i18n - docs translations (#21789)

Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
github-actions[bot]
2026-06-18 15:21:04 +02:00
committed by GitHub
parent 22baf2c6c5
commit 2b3b2362db
704 changed files with 38268 additions and 9002 deletions
@@ -0,0 +1,101 @@
---
title: Pojmy
description: Jak aplikace Twenty fungují — model entit, sandboxing a životní cyklus instalace.
icon: sitemap
---
Aplikace Twenty jsou balíčky TypeScriptu, které rozšiřují váš pracovní prostor o vlastní objekty, logiku, komponenty UI a funkce AI. Běží na platformě Twenty s plnou izolací (sandboxingem) a řízením oprávnění.
## Jak aplikace fungují
Aplikace je kolekce **entit** deklarovaných pomocí funkcí `defineEntity()` z balíčku `twenty-sdk`. SDK tyto deklarace detekuje pomocí analýzy AST při sestavení a vytváří **manifest** — úplný popis toho, co vaše aplikace přidává do pracovního prostoru. Tyto funkce validují vaši konfiguraci v době sestavení a poskytují automatické doplňování v IDE a typovou bezpečnost.
```
your-app/
├── src/
│ ├── application-config.ts ← defineApplication (required, one per app)
│ ├── roles/ ← defineRole
│ ├── objects/ ← defineObject
│ ├── fields/ ← defineField
│ ├── logic-functions/ ← defineLogicFunction
│ ├── front-components/ ← defineFrontComponent
│ ├── skills/ ← defineSkill
│ ├── agents/ ← defineAgent
│ ├── views/ ← defineView
│ ├── navigation-menu-items/ ← defineNavigationMenuItem
│ └── page-layouts/ ← definePageLayout
├── public/ ← Static assets (images, icons)
└── package.json
```
<Note>
**Uspořádání souborů je na vás.** Detekce entit je založená na AST — SDK najde volání `export default defineEntity(...)` bez ohledu na to, kde se soubor nachází. Výše uvedená struktura složek je konvence, nikoli požadavek.
</Note>
## Typy entit
| Entita | Účel | Dokumentace |
| ----------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| **Aplikace** | Identita aplikace, výchozí role, proměnné | [Application Config](/l/cs/developers/extend/apps/config/application) |
| **Role** | Sady oprávnění pro objekty a pole | [Roles & Permissions](/l/cs/developers/extend/apps/config/roles) |
| **Objekt** | Vlastní typy záznamů s poli | [Objects](/l/cs/developers/extend/apps/data/objects) |
| **Pole** | Přidání polí k objektům z jiných aplikací | [Extending Objects](/l/cs/developers/extend/apps/data/extending-objects) |
| **Vztah** | Obousměrná propojení mezi objekty | [Relations](/l/cs/developers/extend/apps/data/relations) |
| **Logická funkce** | TypeScript na straně serveru se spouštěči | [Logické funkce](/l/cs/developers/extend/apps/logic/logic-functions) |
| **Dovednost** | Znovupoužitelné pokyny pro AI agenty | [Dovednosti a agenti](/l/cs/developers/extend/apps/logic/skills-and-agents) |
| **Agent** | AI asistenti s vlastními prompty | [Dovednosti a agenti](/l/cs/developers/extend/apps/logic/skills-and-agents) |
| **Poskytovatel připojení** | Přihlašovací údaje OAuth pro externí rozhraní API třetích stran | [Connections](/l/cs/developers/extend/apps/logic/connections) |
| **Zobrazení** | Předkonfigurovaná zobrazení seznamu záznamů | [Views](/l/cs/developers/extend/apps/layout/views) |
| **Položka navigační nabídky** | Vlastní položky postranního panelu | [Navigation Menu Items](/l/cs/developers/extend/apps/layout/navigation-menu-items) |
| **Rozvržení stránky** | Karty a widgety na stránce s podrobnostmi záznamu | [Page Layouts](/l/cs/developers/extend/apps/layout/page-layouts) |
| **Frontendová komponenta** | Izolované React UI uvnitř Twenty | [Frontendové komponenty](/l/cs/developers/extend/apps/layout/front-components) |
| **Položka příkazové nabídky** | Rychlé akce a položky Cmd+K | [Command Menu Items](/l/cs/developers/extend/apps/layout/command-menu-items) |
## Izolace (sandboxing)
* **Logické funkce** běží v izolovaných procesech Node.js na serveru. K datům přistupují pouze prostřednictvím typovaného klienta API, a to v rozsahu oprávnění role aplikace.
* **Frontendové komponenty** běží ve Web Workerech s využitím Remote DOM — jsou oddělené od hlavní stránky, ale vykreslují nativní prvky DOM (nikoli iframy). Komunikují s Twenty prostřednictvím hostitelského API pro předávání zpráv.
* **Oprávnění** jsou vynucována na úrovni API. Běhový token (`TWENTY_APP_ACCESS_TOKEN`) je odvozen z role definované v `defineApplication()`.
## Životní cyklus aplikace
```
┌─────────────────────────────────────────────────────────┐
│ Development │
│ npx create-twenty-app → yarn twenty dev (live sync) │
├─────────────────────────────────────────────────────────┤
│ Build & Deploy │
│ yarn twenty dev:build → yarn twenty app:publish │
├─────────────────────────────────────────────────────────┤
│ Install flow │
│ upload → [pre-install] → metadata migration → │
│ generate SDK → [post-install] │
├─────────────────────────────────────────────────────────┤
│ Publish │
│ npm publish → appears in Twenty marketplace │
└─────────────────────────────────────────────────────────┘
```
* **`yarn twenty dev`** — sleduje vaše zdrojové soubory a průběžně synchronizuje změny s připojeným serverem Twenty. Typovaný klient API se při změně schématu automaticky znovu vygeneruje.
* **`yarn twenty dev:build`** — zkompiluje TypeScript, zabalí logické funkce a frontendové komponenty pomocí esbuild a vytvoří manifest.
* **Pre/post-install hooks** — volitelné funkce, které běží během instalace. Podrobnosti viz [Install Hooks](/l/cs/developers/extend/apps/config/install-hooks).
## Další kroky
<CardGroup cols={2}>
<Card title="Konfigurace" icon="screwdriver-wrench" href="/l/cs/developers/extend/apps/config/overview">
Identita aplikace, výchozí role a instalační hooky.
</Card>
<Card title="Data" icon="database" href="/l/cs/developers/extend/apps/data/overview">
Objekty, pole a obousměrné relace.
</Card>
<Card title="Logika" icon="bolt" href="/l/cs/developers/extend/apps/logic/overview">
Logické funkce, dovednosti, agenti a připojení přes OAuth.
</Card>
<Card title="Rozvržení" icon="table-columns" href="/l/cs/developers/extend/apps/layout/overview">
Zobrazení, navigace, rozvržení stránek, frontendové komponenty.
</Card>
<Card title="Operace" icon="rocket" href="/l/cs/developers/extend/apps/operations/overview">
CLI, testování, vzdálené repozitáře, CI a publikování vaší aplikace.
</Card>
</CardGroup>
@@ -0,0 +1,87 @@
---
title: Lokální server
description: Spravujte lokální Docker server Twenty spouštění, zastavení, upgrade, paralelní testovací instance a ruční nastavení SDK.
icon: server
---
## Správa lokálního serveru
K ovládání lokálního kontejneru Twenty použijte `yarn twenty docker:*`:
| Příkaz | K čemu slouží |
| -------------------------------------- | ---------------------------------------------- |
| `yarn twenty docker:start` | Spustí server (v případě potřeby stáhne image) |
| `yarn twenty docker:start 2.2.0` | Spustit konkrétní verzi serveru |
| `yarn twenty docker:start --port 3030` | Spustí na vlastním portu |
| `yarn twenty docker:stop` | Zastaví server (zachová data) |
| `yarn twenty docker:status` | Zobrazí URL, verzi a přihlašovací údaje |
| `yarn twenty docker:logs` | Streamuje protokoly serveru |
| `yarn twenty docker:reset` | Vymaže data a začne znovu |
| `yarn twenty docker:upgrade` | Stáhne nejnovější image `twenty-app-dev` |
| `yarn twenty docker:upgrade 2.2.0` | Aktualizuje na konkrétní verzi |
Data přetrvávají při restartech ve dvou svazcích Dockeru (`twenty-app-dev-data` pro PostgreSQL, `twenty-app-dev-storage` pro soubory). Pomocí `reset` vymažte vše.
## Fixace verze serveru
Když není předána žádná verze, `docker:start` určí verzi z rozsahu `engines.twenty` vaší aplikace v `package.json` — stejného rozsahu, vůči kterému server ověřuje, když je vaše aplikace nainstalována. Spustí nejnovější publikovaný image `twenty-app-dev`, který splňuje tento rozsah, a pokud pole chybí nebo žádná publikovaná verze neodpovídá, použije `latest`:
```json filename="package.json"
{
"engines": {
"twenty": ">=2.2.0"
}
}
```
Předáním verze můžete rozsah pro jedno spuštění přepsat: `yarn twenty docker:start 2.3.0`. Pokud už kontejner existuje v jiné verzi, `docker:start` jej na místě aktualizuje (znovu vytvoří kontejner při zachování vašich datových svazků).
## Aktualizace obrazu serveru
`yarn twenty docker:upgrade` stáhne nejnovější image, porovná digesty a znovu vytvoří kontejner pouze v případě, že se skutečně něco změnilo. Svazky zůstanou zachovány — nahradí se pouze kontejner. Pokud byl stažen nový image a kontejner běžel, upgrade automaticky spustí nový kontejner; poté spusťte `yarn twenty docker:start`, abyste počkali, než bude ve stavu 'healthy'.
```bash filename="Terminal"
yarn twenty docker:upgrade # Latest
yarn twenty docker:upgrade 2.2.0 # Specific version
```
Běžící verzi ověříte pomocí `yarn twenty docker:status` (zobrazí `APP_VERSION` zabudovanou v kontejneru).
## Spuštění paralelní testovací instance
Předejte `--test` libovolnému příkazu `docker:*` pro správu druhé, plně izolované instance — užitečné pro integrační testy nebo experimentování bez zásahu do vašich hlavních vývojových dat:
| Příkaz | K čemu slouží |
| ----------------------------------- | ------------------------------------------------ |
| `yarn twenty docker:start --test` | Spustí testovací instanci (výchozí port je 2021) |
| `yarn twenty docker:stop --test` | Zastaví ji |
| `yarn twenty docker:status --test` | Zobrazí její stav |
| `yarn twenty docker:logs --test` | Streamuje její protokoly |
| `yarn twenty docker:reset --test` | Vymaže její data |
| `yarn twenty docker:upgrade --test` | Aktualizuje její image |
Testovací instance má vlastní kontejner (`twenty-app-dev-test`), svazky (`twenty-app-dev-test-data`, `twenty-app-dev-test-storage`) a konfiguraci — běží souběžně s vaší hlavní instancí bez konfliktů. Zkombinujte `--test` s `--port` pro změnu výchozího portu 2021.
## Ruční nastavení (bez generátoru kostry)
Pokud přidáváte SDK do existujícího projektu, generátor kostry přeskočte:
```bash filename="Terminal"
yarn add twenty-sdk twenty-client-sdk
```
Přidejte skript do `package.json`:
```json filename="package.json"
{
"scripts": {
"twenty": "twenty"
}
}
```
Nyní můžete spouštět `yarn twenty dev`, `yarn twenty docker:start` a další.
<Note>
Neinstalujte `twenty-sdk` globálně — nainstalujte jej v každém projektu zvlášť, aby každá aplikace používala svou vlastní verzi.
</Note>
@@ -0,0 +1,61 @@
---
title: Struktura projektu
description: Co obsahuje vygenerovaná aplikace Twenty — soubory, složky a k čemu každý z nich slouží.
icon: folder-tree
---
Nová aplikace vygenerovaná pomocí `npx create-twenty-app` vypadá takto:
```text filename="my-twenty-app/"
my-twenty-app/
package.json
src/
application-config.ts # Required — your app's entry point
default-role.ts # Permissions for logic functions
constants/
universal-identifiers.ts # Auto-generated UUIDs and metadata
__tests__/
setup-test.ts
app-install.integration-test.ts
.github/workflows/ci.yml # GitHub Actions
public/ # Static assets
vitest.config.ts # Test runner config
tsconfig.json, tsconfig.spec.json
.nvmrc, .yarnrc.yml, .oxlintrc.json
README.md, LLMS.md
```
## Klíčové soubory
| Soubor / Složka | Účel |
| ---------------------------------------- | ----------------------------------------------------------------------- |
| `src/application-config.ts` | **Povinné.** Hlavní konfigurační soubor vaší aplikace. |
| `src/default-role.ts` | Výchozí role, která řídí, k čemu mohou vaše logické funkce přistupovat. |
| `src/constants/universal-identifiers.ts` | Automaticky generovaná UUID a metadata (zobrazovaný název, popis). |
| `src/__tests__/` | Integrační testy (nastavení + ukázkový test). |
| `public/` | Statické soubory (obrázky, písma) doručované vaší aplikací. |
<Note>
**Uspořádání souborů je na vás.** Výše uvedené složky jsou konvence — SDK detekuje entity pomocí analýzy AST u volání `export default defineEntity(...)` bez ohledu na to, kde se soubor nachází.
</Note>
## Závislosti
Oba balíčky Twenty SDK patří pod `devDependencies`, ne pod `dependencies`:
```json filename="package.json"
{
"dependencies": {},
"devDependencies": {
"twenty-client-sdk": "^2.13.0",
"twenty-sdk": "^2.13.0"
}
}
```
* **`twenty-sdk`** dodává `twenty` CLI a nástroje pro sestavení/scaffolding. Běží pouze při vývoji a sestavování a nikdy není importován za běhu zveřejněné aplikace.
* **`twenty-client-sdk`** je importován kódem vaší aplikace (`CoreApiClient`, `MetadataApiClient`, `RestApiClient`), ale Twenty ho poskytuje za běhu — logické funkce ho získávají z vygenerované SDK vrstvy a front-endové komponenty ho načítají z modulů poskytovaných serverem. Vaše nainstalovaná kopie se používá pouze pro kontrolu typů a build v době nasazení, takže ji nikdy není potřeba přibalit do nasazeného balíčku.
Ponechání kteréhokoli balíčku pod `dependencies` ho vtáhne do runtime balíčku nainstalované aplikace, kde je jen mrtvou vahou. `twenty build` vypíše varování, pokud je kterýkoli z nich stále uveden pod `dependencies`.
Vlastní runtime závislosti vaší aplikace (knihovny, které vaše logické funkce skutečně importují za běhu) přidejte jako obvykle pod `dependencies`.
@@ -0,0 +1,176 @@
---
title: Rychlý start
icon: rocket
description: Vytvořte svou první aplikaci Twenty během několika minut.
---
## Předpoklady
* **Node.js 24+** — [Stáhnout](https://nodejs.org/)
* **Yarn 4** — je součástí Node.js prostřednictvím Corepacku. Povolte jej: `corepack enable`
* **Docker** — [Stáhnout](https://www.docker.com/products/docker-desktop/). Nutné pro spuštění lokálního serveru Twenty. Přeskočte, pokud už máte Twenty spuštěné jinde.
Vytváření aplikace Twenty má tři fáze. Generátor kostry je spojuje do jediného příkazu pro ideální scénář, ale každá fáze je samostatný koncept — když se něco nepovede, znalost aktuální fáze napoví, co opravit.
| Fáze | Co děláte | Nástroj | Výsledek |
| ---------------------- | -------------------------------------------------------- | ----------------------------- | -------------------------------------------- |
| **1. Vytvořit kostru** | Vygenerovat zdrojový kód aplikace | `npx create-twenty-app` | Projekt v TypeScriptu na disku |
| **2. Spustit server** | Spustit server Twenty, do kterého se bude synchronizovat | Docker + `yarn twenty server` | Běžící instance Twenty |
| **3. Synchronizovat** | Živě synchronizovat kód na server | `yarn twenty dev` | Vaše změny se objeví v uživatelském rozhraní |
---
## Fáze 1 — Vytvořte kostru projektu
Vytvořte novou aplikaci ze šablony:
```bash filename="Terminal"
npx create-twenty-app@latest my-twenty-app
```
Budete vyzváni k zadání názvu a popisu — výchozí hodnoty potvrdíte klávesou **Enter**. Tím se v `my-twenty-app/` vytvoří projekt v TypeScriptu se startovacím `application-config.ts`, výchozí rolí, CI workflow a integračním testem.
**Po této fázi:** máte na svém počítači zdrojový kód aplikace. Zatím neběží — to je předmětem Fáze 2.
---
## Fáze 2 — Spusťte lokální server Twenty
Vaše aplikace potřebuje server Twenty, do kterého se bude synchronizovat. Server je plnohodnotná instance Twenty — UI, GraphQL API, PostgreSQL — běžící lokálně v Dockeru. Váš lokální kód nahrává své definice na tento server, díky čemuž se objeví v UI.
Generátor kostry nabídne, že vám jej spustí:
> **Chcete nastavit lokální instanci Twenty?**
* **Ano (doporučeno)** — stáhne Docker image `twentycrm/twenty-app-dev` a spustí jej na portu `2020`. Nejprve se ujistěte, že Docker běží.
* **Ne** — zvolte, pokud už máte server Twenty, ke kterému se chcete připojit. Můžete jej propojit později pomocí `yarn twenty remote:add`.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/start-instance.png" alt="Spustit lokální instanci?" />
</div>
Jakmile server běží, otevře se prohlížeč pro přihlášení. Použijte předpřipravený demo účet:
* **E-mail:** `tim@apple.dev`
* **Heslo:** `tim@apple.dev`
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/login.png" alt="Přihlašovací obrazovka Twenty" />
</div>
Na další obrazovce klikněte na **Authorize** — tím udělíte nástroji CLI přístup k vašemu pracovnímu prostoru.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/authorize.png" alt="Autorizační obrazovka Twenty CLI" />
</div>
Váš terminál potvrdí, že je vše nastaveno.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/scaffolded.png" alt="Aplikace byla úspěšně vygenerována" />
</div>
**Po této fázi:** máte spuštěný server Twenty na [http://localhost:2020](http://localhost:2020) a vaše CLI má oprávnění se k němu synchronizovat.
<Note>
Pokud Docker není nainstalovaný nebo neběží, generátor kostry vám sdělí správný příkaz pro spuštění ve vašem operačním systému. Jakmile Docker poběží, můžete pokračovat pomocí `yarn twenty docker:start` — není potřeba znovu vytvářet kostru.
</Note>
---
## Fáze 3 — Synchronizujte své změny
Toto je vnitřní smyčka, ve které strávíte většinu času.
```bash filename="Terminal"
cd my-twenty-app
yarn twenty dev
```
Tento proces sleduje `src/`, při každé změně znovu sestaví a synchronizuje výsledek na server. Upravte soubor, uložte a během několika vteřin se změna projeví na serveru. V terminálu uvidíte panel se stavem v reálném čase.
Pro podrobnější výstup (protokoly sestavení, požadavky na synchronizaci, stopy chyb) přidejte `--verbose`.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/dev.png" alt="Výstup terminálu ve vývojovém režimu" />
</div>
Otevřete [http://localhost:2020/settings/applications#developer](http://localhost:2020/settings/applications#developer). Vaše aplikace by měla být uvedena v části **Your Apps**.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-1.png" alt="Seznam Your Apps se zobrazenou aplikací My twenty app" />
</div>
Klikněte na **My twenty app** a zobrazí se jeho **registrace aplikace** — záznam na úrovni serveru, který popisuje vaši aplikaci (název, identifikátor, přihlašovací údaje OAuth, zdroj). Jedna registrace může být nainstalována ve více pracovních prostorech na stejném serveru.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-2.png" alt="Podrobnosti registrace aplikace" />
</div>
Klikněte na **View installed app**, abyste zobrazili instalaci v pracovním prostoru. Karta **About** zobrazuje verzi a možnosti správy.
<div style={{textAlign: 'center'}}>
<img src="/images/docs/developers/extends/apps/app-in-ui-3.png" alt="Nainstalovaná aplikace" />
</div>
**Po této fázi:** máte průběžný vývojový cyklus. Upravte libovolný soubor v `src/` a projeví se to v UI.
### Jednorázová synchronizace pro CI a skripty
Předejte `--once` pro provedení jednoho sestavení + synchronizace a ukončení — stejný postup, bez sledování změn:
```bash filename="Terminal"
yarn twenty dev --once
```
| Příkaz | Chování | Kdy použít |
| ---------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| `yarn twenty dev` | Sleduje změny a při každé změně znovu synchronizuje. Běží, dokud jej nezastavíte. | Interaktivní lokální vývoj. |
| `yarn twenty dev --once` | Jedno sestavení + synchronizace, ukončí se s kódem `0` při úspěchu, `1` při chybě. | CI, pre-commit hooky, AI agenti, skriptované pracovní postupy. |
| `yarn twenty dev --once --dry-run` | Sestaví a vypíše změny metadat **bez jejich použití**. | Kontrola toho, co by synchronizace změnila, ještě před jejím potvrzením. |
Oba režimy vyžadují autentizovaný vzdálený server. Více informací o `--dry-run` najdete v části [Synchronizace a obnovení](/l/cs/developers/extend/apps/operations/sync-and-recovery#previewing-changes-dry-run).
### Možnosti vývojového režimu
| Přepínač | Popis |
| ------------------------------------- | --------------------------------------------------------------------------------------------- |
| `--once` | Jednou sestavit a synchronizovat, poté ukončit. |
| `--dry-run` | Pomocí `--once` zobrazíte náhled změn metadat, aniž byste je použili. Nic nezapisuje. |
| `--debounceMs \<ms>` | Nastaví prodlevu pro potlačení zákmitů při změnách souborů v milisekundách (výchozí: `2000`). |
| `--verbose` / `--debug` | Zobrazí podrobné protokoly sestavení, požadavky synchronizace a trasování chyb. |
## Co můžete vytvořit
Aplikace se skládají z **entit** — každá je definována jako soubor TypeScriptu s jediným `export default`:
| Entita | K čemu slouží |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Objekty a pole** | Vlastní datové modely (pohlednice, faktura apod.) s typovanými poli |
| **Logické funkce** | Serverový TypeScript spouštěný HTTP trasami, plánovačem cron nebo událostmi databáze |
| **Frontendové komponenty** | Komponenty Reactu, které se vykreslují v uživatelském rozhraní Twenty (postranní panel, widgety, příkazová nabídka) |
| **Dovednosti a agenti** | Schopnosti AI — opakovaně použitelné pokyny a autonomní asistenti |
| **Pohledy a navigace** | Předkonfigurované seznamové pohledy a položky postranní nabídky |
| **Rozvržení stránek** | Vlastní stránky detailu záznamu s kartami a widgety |
Úplná reference: [Koncepty](/l/cs/developers/extend/apps/getting-started/concepts).
## Další kroky
<CardGroup cols={2}>
<Card title="Konfigurace" icon="screwdriver-wrench" href="/l/cs/developers/extend/apps/config/overview">
Identita aplikace, výchozí role, instalační hooky, veřejná aktiva.
</Card>
<Card title="Data" icon="database" href="/l/cs/developers/extend/apps/data/overview">
Objekty, pole a obousměrné relace.
</Card>
<Card title="Logika" icon="bolt" href="/l/cs/developers/extend/apps/logic/overview">
Logické funkce, dovednosti, agenti a připojení přes OAuth.
</Card>
<Card title="Rozvržení" icon="table-columns" href="/l/cs/developers/extend/apps/layout/overview">
Zobrazení, navigace, rozvržení stránek, frontendové komponenty.
</Card>
<Card title="Operace" icon="rocket" href="/l/cs/developers/extend/apps/operations/overview">
CLI, testování, vzdálené repozitáře, CI a publikování vaší aplikace.
</Card>
</CardGroup>
@@ -0,0 +1,58 @@
---
title: Vytvoření kostry
description: Interaktivně generujte soubory entit pomocí yarn twenty dev:add objekty, pole, zobrazení, logické funkce a další.
icon: wand-magic-sparkles
---
Místo ručního vytváření souborů entit použijte interaktivní generátor:
```bash filename="Terminal"
yarn twenty dev:add
```
Vyžádá si, abyste vybrali typ entity, provede vás požadovanými poli a poté zapíše připravený soubor s pevně daným `universalIdentifier` a správným voláním `defineEntity()`.
Můžete také předat typ entity přímo a přeskočit první dotaz:
```bash filename="Terminal"
yarn twenty dev:add object
yarn twenty dev:add logicFunction
yarn twenty dev:add frontComponent
```
## Dostupné typy entit
| Typ entity | Příkaz | Vygenerovaný soubor |
| ------------------------- | ---------------------------------------- | ------------------------------------------------------- |
| Objekt | `yarn twenty dev:add object` | `src/objects/\<name>.ts` |
| Pole | `yarn twenty dev:add field` | `src/fields/\<name>.ts` |
| Logická funkce | `yarn twenty dev:add logicFunction` | `src/logic-functions/\<name>.ts` |
| Frontendová komponenta | `yarn twenty dev:add frontComponent` | `src/front-components/\<name>.tsx` |
| Role | `yarn twenty dev:add role` | `src/roles/\<name>.ts` |
| Dovednost | `yarn twenty dev:add skill` | `src/skills/\<name>.ts` |
| Agent | `yarn twenty dev:add agent` | `src/agents/\<name>.ts` |
| Zobrazení | `yarn twenty dev:add view` | `src/views/\<name>.ts` |
| Položka navigační nabídky | `yarn twenty dev:add navigationMenuItem` | `src/navigation-menu-items/\<name>.ts` |
| Rozvržení stránky | `yarn twenty dev:add pageLayout` | `src/page-layouts/\<name>.ts` |
## Co generátor vytváří
Každý typ entity má vlastní šablonu. Například `yarn twenty dev:add object` se zeptá na:
1. **Název (jednotné číslo)** — např. `invoice`
2. **Název (množné číslo)** — např. `invoices`
3. **Štítek (jednotné číslo)** — automaticky doplněn z názvu (např. `Invoice`)
4. **Štítek (množné číslo)** — automaticky doplněn (např. `Invoices`)
5. **Vytvořit zobrazení a položku navigace?** — pokud odpovíte ano, generátor také vytvoří odpovídající zobrazení a odkaz v postranním panelu pro nový objekt.
Ostatní typy entit mají jednodušší dotazy — většinou se ptají pouze na název.
Typ entity `field` je podrobnější: ptá se na název pole, štítek, typ (ze seznamu všech dostupných typů polí jako `TEXT`, `NUMBER`, `SELECT`, `RELATION` atd.) a `universalIdentifier` cílového objektu.
## Vlastní výstupní cesta
Pomocí příznaku `--path` umístíte vygenerovaný soubor do vlastního umístění:
```bash filename="Terminal"
yarn twenty dev:add logicFunction --path src/custom-folder
```
@@ -0,0 +1,14 @@
---
title: Řešení potíží
description: Časté problémy při prvním spuštění — Docker, verze Node, Yarn, závislosti.
icon: klíč
---
* **Chyby Dockeru** — Před spuštěním `yarn twenty docker:start` se ujistěte, že Docker Desktop (nebo démon) běží. Chybová zpráva ukáže správný příkaz pro spuštění pro váš operační systém.
* **Nesprávná verze Node** — Je potřeba 24+. Ověřte pomocí `node -v`.
* **Chybí Yarn 4** — Spusťte `corepack enable`.
* **Rozbité závislosti** — `rm -rf node_modules && yarn install`.
* **Chyby `twenty-sdk` po upgradu na v2.8.0** — V 2.8.0 byl přesunut z `dependencies` do `devDependencies`. Viz [Struktura projektu → Závislosti](/l/cs/developers/extend/apps/getting-started/project-structure#dependencies).
* **`twenty build` upozorňuje na `twenty-client-sdk` v sekci `dependencies`** — je poskytován za běhu Twenty, takže by měl být přesunut do `devDependencies` vedle `twenty-sdk`. Viz [Struktura projektu → Závislosti](/l/cs/developers/extend/apps/getting-started/project-structure#dependencies).
Zasekli jste se? Zeptejte se na [Discordu Twenty](https://discord.com/channels/1130383047699738754/1130386664812982322).