Přejít na hlavní obsah
Každá aplikace musí mít právě jedno volání defineApplication. Deklaruje:
  • Identita — univerzální identifikátor, zobrazovaný název, popis.
  • Oprávnění — pod jakou rolí běží její logické funkce a frontendové komponenty.
  • Proměnné (volitelné) — páry klíč–hodnota zpřístupněné vašemu kódu jako proměnné prostředí.
  • Předinstalační / postinstalační hooky (volitelné) — viz Logické funkce.
src/application-config.ts
Poznámky:
  • Pole universalIdentifier jsou deterministické identifikátory, které vlastníte. Vygenerujte je jednou a zachovejte je stabilní napříč synchronizacemi.
  • applicationVariables se stanou proměnnými prostředí pro vaše funkce a frontendové komponenty. V logických funkcích (na straně serveru) jsou dostupné jako process.env.VARIABLE_NAME. Ve frontendových komponentách použijte getApplicationVariable('VARIABLE_NAME') z twenty-sdk/front-component. Proměnné označené jako isSecret: true jsou předávány pouze do logických funkcí. Frontendové komponenty přijímají pouze proměnné, které nejsou tajné.
  • Výchozí role je automaticky detekována ze souboru role označeného pomocí defineApplicationRole() — není potřeba na ni odkazovat z defineApplication().
  • Předinstalační a postinstalační funkce jsou při sestavení manifestu detekovány automaticky — není třeba na ně odkazovat v defineApplication().
  • Předávání defaultRoleUniversalIdentifier explicitně je stále podporováno kvůli zpětné kompatibilitě, ale je zastaralé ve prospěch defineApplicationRole().
  • serverVariables představují konfiguraci a tajné údaje vázané na instanci (např. klíče API). Na rozdíl od applicationVariables neuvádějí v manifestu žádnou hodnotu — operátor pracovního prostoru je vyplní v nastavení aplikace a do logických funkcí jsou injektovány až poté, co jsou nastaveny.

Typy proměnných

Jak applicationVariables, tak serverVariables přijímají volitelný type (a pro SELECT / MULTI_SELECT i seznam options). Podporované typy: TEXT (výchozí), BOOLEAN, NUMBER, NUMERIC, DATE, DATE_TIME, SELECT, MULTI_SELECT, ARRAY, RAW_JSON, RICH_TEXT.
src/application-config.ts
type ovlivňuje pouze prezentaci a validaci — v uživatelském rozhraní nastavení pracovního prostoru vybere odpovídající vstup (přepínač, číselné pole, rozbalovací seznam, výběr data, editor JSON, …) a umožní sestavení ověřit vaši konfiguraci (například SELECT / MULTI_SELECT musí deklarovat neprázdné options). Nijak nemění způsob, jakým se hodnota dostane do vašeho kódu. Hodnoty jsou vždy předávány jako řetězce — je to dáno povahou proměnných prostředí (process.env.* obsahuje pouze řetězce). Když se spustí vaše logická funkce, executor serializuje každou hodnotu podle jejího deklarovaného type při sestavování process.env, takže formát řetězce je konzistentní bez ohledu na to, jak byla hodnota nastavena (výchozí hodnota v manifestu, v uživatelském rozhraní nastavení nebo v předchozí verzi): Parsujte řetězec zpět do typu, který očekáváte:
Totéž platí pro frontendové komponenty, které čtou hodnoty pomocí getApplicationVariable('VARIABLE_NAME') — vrácená hodnota je řetězec; podle potřeby ji parsujte.

Výchozí role funkce

Role deklarovaná pomocí defineApplicationRole() určuje, k čemu mají přístup logické funkce a front-endové komponenty aplikace:
  • Běhový token vložený jako TWENTY_APP_ACCESS_TOKEN je odvozen z této role.
  • Typovaný klient API je omezen na oprávnění udělená této roli.
  • Dodržujte princip nejmenších oprávnění: deklarujte pouze ta oprávnění, která vaše funkce potřebují.
Když vygenerujete novou aplikaci, CLI vytvoří úvodní soubor role v src/roles/default-role.ts. Úplnou referenci najdete v části Role a oprávnění.

Metadata tržiště

Pokud plánujete zveřejnit svou aplikaci, tato volitelná pole určují, jak se vaše aplikace zobrazuje v tržišti:
logoUrl a screenshots jsou zastaralé aliasy logo a galleryImages. Externí absolutní adresy URL (http:// nebo https://) nejsou pro tato pole podporovány: při sestavení jsou vynechány s varováním. Místo toho přiložte obrázky do složky public/ vaší aplikace.