Skip to main content
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í / odinstalač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í, postinstalační a odinstalač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.
  • Oba druhy proměnných přijímají isDeprecated: true. Použijte ji k vyřazení proměnné místo jejího smazání: ponechání deklarovaného klíče zachová uloženou hodnotu (jejím smazáním se zničí hodnota, kterou zadal uživatel) a proměnná se stále injektuje, takže ji váš kód může použít jako záložní hodnotu — process.env.NEW_API_KEY ?? process.env.API_KEY. Zastaralá proměnná zmizí z nastavení aplikace, jakmile nemá žádnou hodnotu, a nikdy se nezapočítává do kontroly konfigurace aplikace, takže isDeprecated má přednost před isRequired.
  • Chcete-li vykreslit vlastní konfigurační uživatelské rozhraní na kartě Settings aplikace (namísto výchozí sekce pro konfiguraci proměnných), deklarujte frontovou komponentu pomocí defineSettingsFrontComponent() v jejím vlastním souboru. Na jednu aplikaci je povolena pouze jedna instance. Sekce spravované systémem (automatická aktualizace, App URL, připojení) zůstávají vždy viditelné.

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é tokeny vložené do vašich logických funkcí jsou odvozeny z této role. Volání jednající jako osoba je dále omezeno tím, co tato osoba může dělat, takže nikdy nemůže překročit ani jedno z těchto oprávnění. Vizte Čí přístup volání používá.
  • 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.