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
- Pole
universalIdentifierjsou deterministické identifikátory, které vlastníte. Vygenerujte je jednou a zachovejte je stabilní napříč synchronizacemi. applicationVariablesse stanou proměnnými prostředí pro vaše funkce a frontendové komponenty. V logických funkcích (na straně serveru) jsou dostupné jakoprocess.env.VARIABLE_NAME. Ve frontendových komponentách použijtegetApplicationVariable('VARIABLE_NAME')ztwenty-sdk/front-component. Proměnné označené jakoisSecret: truejsou 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 zdefineApplication(). - 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í
defaultRoleUniversalIdentifierexplicitně je stále podporováno kvůli zpětné kompatibilitě, ale je zastaralé ve prospěchdefineApplicationRole(). serverVariablespředstavují konfiguraci a tajné údaje vázané na instanci (např. klíče API). Na rozdíl odapplicationVariablesneuvá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
JakapplicationVariables, 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:
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_TOKENje 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í.
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.